Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
UNIVERSITEIT GENT
FACULTEIT ECONOMIE EN BEDRIJFSKUNDE
ACADEMIEJAAR 2012 – 2013
OPTIMIZING THE DOCK DOOR ASSIGNMENT
PROBLEM IN CROSS-DOCKING WAREHOUSES
Masterproef voorgedragen tot het bekomen van de graad van
Master of Science in de
Economische Wetenschappen: Handelsingenieur
Nathan Goddefroy & Alexander Mellaerts
onder leiding van
Prof. Dr. Birger Raa
UNIVERSITEIT GENT
FACULTEIT ECONOMIE EN BEDRIJFSKUNDE
ACADEMIEJAAR 2012 – 2013
OPTIMIZING THE DOCK DOOR ASSIGNMENT
PROBLEM IN CROSS-DOCKING WAREHOUSES
Masterproef voorgedragen tot het bekomen van de graad van
Master of Science in de
Economische Wetenschappen: Handelsingenieur
Nathan Goddefroy & Alexander Mellaerts
onder leiding van
Prof. Dr. Birger Raa
Permission
I, the undersigned, declare that the content of this thesis may be consulted and/or
reproduced, provided the source is acknowledged.
Ondergetekende verklaart dat de inhoud van deze masterproef mag geraadpleegd en/of
gereproduceerd worden, mits bronvermelding.
Nathan Goddefroy Alexander Mellaerts
Ghent, 21 May 2013 Ghent, 21 May 2013
I
Acknowledgments
This thesis would not have been possible without the support of certain people.
First of all, we would like to thank our promoter Prof. Dr. Birger Raa for the guidance and
qualitative contributions throughout our study. Furthermore, we would like to thank our
parents, our respective girlfriends and fellow thesis students for the support they have given
us. All of them have been a great motivation and contributed valuably to this thesis.
Nathan Goddefroy Ghent, 21 May 2013
Alexander Mellaerts
II
Dutch summary – Nederlandse samenvatting
In deze thesis behandelden we het ‘dock door assignment’ probleem in een cross-docking magazijn
aan de hand van een zelf ontwikkelde heuristiek. Cross-docking is een voorraad-minimaliserende
distributiestrategie waarbij inkomende goederen geconsolideerd worden om zo efficiënt mogelijk
aan de vraag te voldoen. Het heeft tal van voordelen die bijdragen tot een betere prestatie van de
volledige supply-chain, voornamelijk op vlak van klantentevredenheid en kosten.
In deze studie gingen we uit van een ideale situatie: we bestudeerden ‘one-touch, pre-distribution
cross-docks’ zonder voorraad en zonder informatie-onzekerheid. We beperkten ons tot I-vormige
faciliteiten met een ‘exclusive assignment mode’ waar de producten manueel behandeld worden.
Vanwege het gebrek aan academisch onderzoek in dit specifiek domein, spitsten wij ons toe op het
‘dock door assignment’ probleem op middellange termijn waarin oorsprongen (leveranciers) en
bestemmingen (klanten) optimaal aan laad- en lospoorten moeten worden toegewezen.
Om tot deze optimale toewijzing te komen ontwikkelden we de LS-including heuristic, gebaseerd op
de heuristiek van Yuval Cohen and Keren (2009) . De heuristiek omvat een initialisatie en een
iteratieve fase. Allereerst wijst de initialisatie fase een oorsprong en een bestemming toe aan het
midden van het cross-dock. Vervolgens wordt het cross-dock iteratief opgebouwd door telkens een
oorsprong of bestemming aan een poort toe te wijzen, in volgorde van belangrijkheid. Een ‘best-
improving swap local search’ methode verbetert de unieke oplossing die hieruit volgt en dit lokaal
optimum wordt beschouwd als de finale oplossing voor het ‘dock door assignment’ probleem.
Daarnaast integreerden we de heuristiek in een ‘Greedy Randomized Adaptive Search Procedure’,
kortweg GRASP, bestaande uit twee stappen: een constructie fase en een ‘local search’ methode. De
constructie fase omvat dezelfde stappen als de heuristiek maar maakt gebruik van een meer
willekeurige selectieprocedure voor het toewijzen van oorsprongen en bestemmingen. Dit resulteert
in meerdere start-oplossingen in de plaats van de unieke oplossing uit de heuristiek. Vervolgens,
werd dezelfde ‘local search’ methode toegepast om tot een finale oplossing te komen.
Na het uitvoerig testen van beide algoritmes konden we het volgende besluiten. Voor grote
problemen, cross-docks met meer dan 70 poorten, ontwikkelde de LS-including heuristic een betere
oplossing in minder CPU tijd. Voor kleine problemen daarentegen, moet een afweging gemaakt
worden tussen een betere heuristic-based GRASP oplossing en een minder tijdrovende maar
suboptimale oplossing met behulp van de LS-including heuristic.
III
Content table
List of figures ............................................................................................................................. IV
List of tables ............................................................................................................................... V
1 Introduction ........................................................................................................................ 1
2 Cross-docking: definition .................................................................................................... 7
2.1 Cross-docking vs. traditional warehousing .................................................................. 8
2.2 Cross-docking: characteristics ..................................................................................... 9
2.3 Cross-docking: advantages ........................................................................................ 12
3 Structure of this study ...................................................................................................... 14
4 Exploring the cross-docking problem ............................................................................... 15
4.1 Cross-docking planning process ................................................................................ 15
4.2 Problem overlaps ....................................................................................................... 19
5 Literature review ............................................................................................................... 21
5.1 Dock door assignment ............................................................................................... 21
5.2 Overview .................................................................................................................... 25
6 Defining the dock door assignment problem ................................................................... 27
6.1 Mathematical formulation ........................................................................................ 28
7 Solution approach ............................................................................................................. 34
7.1 Heuristic by Yuval Cohen and Keren (2009) .............................................................. 34
7.2 LS-including heuristic ................................................................................................. 35
7.3 Heuristic-based GRASP .............................................................................................. 49
8 Results ............................................................................................................................... 51
9 Conclusion ......................................................................................................................... 60
9.1 Summary of this thesis .............................................................................................. 60
9.2 Limitations and future research ................................................................................ 61
Bibliography................................................................................................................................ V
Appendix...................................................................................................................................... i
Appendix 1.1 ............................................................................................................................ i
Appendix 1.2 ......................................................................................................................... xiii
IV
List of figures
Figure 1: Supply Chain Management ......................................................................................... 2
Figure 2: Logistic costs as a proportion of sales ......................................................................... 5
Figure 3: Traditional warehousing (left) compared to cross-docking (right) ............................. 9
Figure 4: Type of cross-dock used in this thesis ....................................................................... 11
Figure 5: Greatest benefits of cross-docking ........................................................................... 13
Figure 6: Inside corner limiting trailer parking space............................................................... 16
Figure 7: Problem overlaps ...................................................................................................... 19
Figure 8: Manhattan distance in a cross-dock ......................................................................... 29
Figure 9: Heuristic cross-dock initialization ............................................................................. 41
Figure 10: Heuristic cross-dock iteration 1 .............................................................................. 43
Figure 11: Heuristic cross-dock iteration 9 .............................................................................. 45
Figure 12: Heuristic cross-dock iteration 10 ............................................................................ 45
Figure 13: Heuristic cross-dock iteration 4 .............................................................................. 47
Figure 14: Schematic overview heuristic ................................................................................. 48
Figure 15: % improvement through Local search .................................................................... 53
Figure 16: CPU time heuristic and Local search ....................................................................... 54
Figure 17: Distance comparison of initial solutions ................................................................. 56
Figure 18: CPU time for generating the initial solutions .......................................................... 56
Figure 19: % improvement of heuristic-based GRASP ............................................................. 57
Figure 20: CPU time LS-including heuristic and heuristic-based GRASP .................................. 58
V
List of tables
Table 1: Modal split of inland freight transport, 2000 and 2010 (% of total inland km) ........... 3
Table 2: Intensity of Physical Transportation Systems of World's Top Economies: 2008 ......... 4
Table 3: Literature review ........................................................................................................ 26
Table 4: Heuristic truck database ............................................................................................. 38
Table 5: Heuristic flow table..................................................................................................... 38
Table 6: Heuristic distance table .............................................................................................. 39
Table 7: Heuristic cross-dock.................................................................................................... 39
Table 8: Heuristic initial flow table ........................................................................................... 41
Table 9: Heuristic updated flow table ...................................................................................... 41
Table 10: Heuristic starting flow table iteration 1 ................................................................... 43
Table 11: Heuristic flow table iteration 1 ................................................................................. 44
Table 12: Heuristic starting flow table iteration 16 ................................................................. 46
Table 13: Heuristic flow table iteration 16 ............................................................................... 46
Table 14: GRASP initial flow table ............................................................................................ 50
Table 15: General simulation overview ................................................................................... 52
Table 16: Heuristic vs. Local search .......................................................................................... 55
Table 17: Initial solution comparison ....................................................................................... 57
Table 18: LS-including heuristic vs. Heuristic-based GRASP .................................................... 59
1
1 Introduction
In today’s dynamic and competitive economic climate, efficiency and flexibility are important
factors in designing or adjusting supply chain networks. More efficient processes combined
with a better planning of operations lead to cost improvements, better quality and shorter
lead times. This could in turn result in an improved responsiveness and shortened time-to-
customer. Besides efficiency, also flexibility contributes to an improved responsiveness and
could be defined as the ability to cope with variability such as fluctuations in demand, both
in quantity and product type. Customization is a hot topic nowadays and the more flexible
and efficiently a supply chain is organized, the easier it gets to adapt to ever changing
market conditions.
At present, definitions of supply chain management and other related topics vary widely.
Simchi-Levi, Simchi-Levi, and Kaminsky (2008) define supply chain management as “a set of
approaches utilized to efficiently integrate suppliers, manufacturers, warehouses, and stores,
so that merchandise is produced and distributed at the right quantities, to the right locations,
and at the right time, in order to minimize system wide costs while satisfying service level
requirements”. Another definition by the (Supply Chain Counsil) states that supply chain
management can be seen as “every effort involved in producing and delivering a final
product or service, from the supplier’s supplier to the customer’s customer. Supply chain
management includes managing supply and demand, sourcing raw materials and parts,
manufacturing and assembly, warehousing and inventory tracking, order entry and order
management, distribution across all channels and delivery to the customer”.
Both definitions agree on the general and integrated approach towards supply chain
management: considering all aspects across all stages, from start to finish. Therefore, before
analyzing how to establish a successful supply chain, the different elements and their impact
within the complicated network of different players should be understood. Figure 1 gives a
schematic overview.
2
Figure 1: Supply Chain Management
In recent years especially distribution and logistics have gained a lot of attention. Factors
such as productivity improvements, shorter product life cycles, higher competitive pressure
and the growing power of retailers all contribute to the increased importance of logistics.
Moreover, globalization and customization, together with the IT revolution and the
deregulation of transport, offer a lot of opportunities to develop logistics into a competitive
advantage.
Taking a closer look at distribution and logistics, Table 1 and Table 2 provide some data
about international freight transport. As shown in Table 1, there is a clear positive trend in
inland road transportation in Europe between 2000 and 2010, with truck transportation
accounting for 76.4% in 2010. Especially in the more recent EU member states, such as
Bulgaria, Estonia, Latvia and Lithuania, the evolution is the biggest.
3
Source: Eurostat (online data code: tsdtr220)
Table 1: Modal split of inland freight transport, 2000 and 2010 (% of total inland km)
When looking at the kilometers of roadways in Table 2, we clearly see a big advantage for
roadway freight transportation in Belgium and the Netherlands. Belgium has the largest
number of roadway kilometers per square kilometer land area. The Netherlands come
second, making the BeNe(Lux) a beneficial area transportation wise.
4
Total roadways Paved roadways
Ranked by total road miles per
capita
Population density (number
of people per square
kilometer)
Kilometers per capita (1,000
persons)
Roadway kilometers per
square kilometer land area
Kilometers per capita (1,000
persons)
Roadway kilometers miles
per square kilometer land
area
Australia 0.4 105.8 0.04 44.4 0.02
Sweden 22 46.9 1.04 15.4 0.34
Canada 4 31.1 0.11 12.4 0.05
United States 34 21 0.71 13.7 0.46
Norway 15 19.9 0.31 15.5 0.24
Spain 81 16.8 1.37 16.8 1.37
France 116 14.9 1.73 14.9 1.73
Belgium 344 14.6 5.03 11.4 3.93
Austria 100 13.1 1.3 13.1 1.3
Poland 126 11 1.39 7.7 0.97
Japan 349 9.4 3.28 7.5 2.6
Switzerland 190 9.4 1.78 9.4 1.78
Brazil 23 8.8 0.21 0.5 0.01
Italy 198 8.4 1.66 8.4 1.66
Netherlands 493 8.1 4 6.8 3.33
Germany 236 7.8 1.85 7.8 1.85
Saudi Arabia 13 7.7 0.1 1.7 0.02
Russia 9 6.7 0.06 5.4 0.05
United Kingdom
253 6.5 1.65 6.5 1.65
Turkey 100 5.6 0.55 2.3 0.23
Mexico 57 3.2 0.18 1.6 0.09
India 392 2.8 1.12 1.3 0.51
Korea 501 2.1 1.06 1.7 0.83
Indonesia 133 1.6 0.22 0.9 0.12
China 140 1.4 0.2 1.2 0.16
Source: U.S. Department of Transportation, Research and Innovative Technology Administration, Bureau of Transportation
Statistics, based on data from Central Intelligence Agency, Fact Book 2009, available at www.cia.gov as of Sept. 20, 2009.
Table 2: Intensity of Physical Transportation Systems of World's Top Economies: 2008
5
Figure 2, illustrated in (Waters, 2010), highlights the importance of highly efficient logistic
processes and optimized warehousing techniques. It shows the distribution of logistic costs
from ’87-‘08. In 2003, warehousing costs represented 25% of the total logistic costs of all
surveyed companies within the European Logistics Association and AT Kearney research,
conducted in 2004.
Source: ELA and AT Kearney, 2004
Figure 2: Logistic costs as a proportion of sales
Because these controllable logistic or warehousing costs (inventory costs, transportation
costs, handling costs) are such an important part of total logistic costs, they have received
more and more attention in contemporary research.
Transportation cost optimization is dealt with in for example the vehicle routing problem
(VRP), which is concerned with the determination of the optimal routes used by a fleet of
vehicles. Starting from one or more depots, the routes are fixed in such a way so as to
optimally serve a set of customers (Toth & Vigo, 2002).
6
Furthermore inventory costs and handling costs have gained more and more attention and
are also addressed in this study. More specifically we deal with the concept of cross-docking,
which can be seen as a warehousing strategy. Traditional warehousing consists of a
receiving, storage, order picking and a shipping phase. Because of inventory holding costs
and a high labor intensity, storage and order picking are usually the most costly. Cross-
docking is an approach that eliminates these two most expensive handling operations and
handles goods more efficiently in order to deliver shorter lead times and an improved
customer service (Van Belle, Valckenaers, & Cattrysse, 2012).
Therefore, the cross-docking strategy could contribute greatly in increasing the overall
performance of a supply chain. Higher cost-efficiency and moreover increased flexibility
jointly represent key elements in the race for success in the future economic landscape.
7
2 Cross-docking: definition
Nowadays many definitions of the cross-docking concept are known. We present four
definitions which we consider the most specific and precise ones.
First of all, the (Material Handling Institute) talks about “the process of moving merchandise
from the receiving dock to the shipping dock without first placing it into temporary storage
locations”. Secondly, in the definition of (Boysen & Fliedner, 2010), the principle of
consolidation is addressed and they describe a cross-dock as “a consolidation point in a
distribution network, where multiple smaller shipments can be merged to full truck loads in
order to realize economies in transportation”. Thirdly, Bartholdi and Gue (2004) add a time
constraint and formulate it as follows: “the idea behind cross-docking is to transfer
shipments directly from inbound to outbound trailers without storage in between. Shipments
typically spend less than 24 hours in a cross-dock, sometimes less than an hour”. Finally, in a
recent literature overview, Van Belle et al. (2012) describe cross-docking in a very pragmatic
way as “a logistics strategy in which freight is unloaded from inbound vehicles and (almost)
directly loaded into outbound vehicles, with little or no storage in between”. A perfect
synchronization however is difficult to achieve. Cross-docking could then be described as the
process of consolidating freight with the same destination, but coming from several origins,
with minimal handling and with little or no storage between the unloading and loading of
the goods.
The most obvious candidates for cross-docking are products that have already been ordered
by the final customer before transportation from the manufacturer to the warehouse has
started. Others include products with short delivery times, products with high demand and
products with highly predictable demand (Richardson, 1999). Of course, collaboration
between all supply chain elements is necessary to create a competitive advantage across the
whole supply chain. This could be achieved for example through more advanced IT-tools
which would increase transparency and predictability for all parties involved.
8
The first real-life example of a cross-dock facility would be Wal-Mart during the 1980s (Stalk,
Evans, & Shulman, 1992), but the subject has gained a lot of attention in academic research
as well, especially during recent years. According to Van Belle et al. (2012) more than 85% of
the academic papers found are published from 2004 onwards.
Finally, as a side note, we make no distinction between trucks and trailers, from here on the
terms will be used interchangeably. The same holds for the terms cross-dock, facility and
terminal.
2.1 Cross-docking vs. traditional warehousing
The following paragraph discusses the major differences between cross-docking and
traditional warehousing. A schematic overview is given in Figure 3.
First of all, in traditional warehousing, goods are mostly produced based on forecasts and
then stored in a warehouse to wait (for days or weeks) for a customer to order them. In a
cross-docking environment, however, the destinations of all the goods are known when they
arrive. Stated otherwise, in traditional warehousing goods are pushed to storage whereas
goods are pulled based on the customer order time in a cross-docking context.
Secondly, the material handling process differs significantly. In a warehouse, goods are
stored at fixed locations. When a customer orders a product, goods are taken out of the
storage by an employee who moves to the specific storage location. This is called order
picking and incurs high inventory costs, not only variable costs but also fixed ones because of
the spatial need for the storage facility. In a cross-dock, receptacles (e.g. pallets or carts) for
each known customer are placed at predefined locations, and when the products arrive,
they are either moved to these pre-positioned receptacles or, ideally, directly loaded onto
an outbound truck. The handling of goods at a cross-docking terminal can be seen as the
opposite of the order picking process in a warehouse (Vis & Roodbergen, 2011). In a cross-
dock an employee moves through the storage area with a full pallet (or cart), takes products
off the pallet and ends with an empty one, whereas in a warehouse the employee starts with
an empty pallet and puts products onto the pallet to compose a customer order. In both
9
situations the design of the storage area heavily influences the employee’s workload but
whereas the layout in a cross-dock can be reconfigured more frequently at almost no
additional costs, the layout in a warehouse is usually fixed for a much longer time.
Figure 3: Traditional warehousing (left) compared to cross-docking (right)
2.2 Cross-docking: characteristics
In order to understand industry- and topic-specific terms used in this study, this section will
give the reader a short overview of the typical characteristics of a cross-dock.
The first distinction concerns the number of times a product is touched within the cross-
docking process. An ideal cross-dock is by definition a one-touch cross-dock, where goods
are only touched once and go directly from inbound to outbound trucks. In a two-touch
cross-dock, there is one storage area between in- and outbound doors, whereas a multiple-
touch cross-dock is characterized by two (or more) storage areas with goods being
transported in between. Goods of inbound trailer A are for example stored at storage area X.
Production
Transportation to warehouse
Warehousing operation
Transportation to customer
Customer
Based on forecasts; pushed to storage
Product arrival time known; destination unknown
Fixed storage locations; goods stored for longer period; order picking
Departure time depending on customer order time
Production
Transportation to cross-dock
Cross-docking operation
Transportation to customer
Customer
Pulled from customer demand
Pre-positioned receptacles / no storage; goods stay max 24h; cross-docking
Departure time known
Product arrival time depending on customer order time; destination known
10
Afterwards, they are consolidated with goods coming from other inbound trucks at second
storage area Y, to be loaded onto outbound trailer B. In this case the product is touched
three times (A to X, X to Y and Y to B).
A second characteristic deals with customer assignment to products. If it is known in
advance, thus before the shipment leaves the supplier, which goods need to be transported
to which customer, the facility is called a pre-distribution cross-dock. On the other hand, a
cross-dock in which only one type of good arrives, assigned to customers based on their
demand, is named a post-distribution cross-dock. In this study, we assume a situation in
which the customer assignment is known in advance. Hence we only handle pre-distribution
cross-docks where goods are touched once.
Additionally, according to Van Belle et al. (2012), characteristics defining the type of cross-
dock can be split up in three groups. First of all, the physical characteristics include the shape
of the cross-dock facility (I, L, U, T, H, E,…), the number of dock doors (both in- and
outbound) and the method of internal transportation of goods (manually or automated).
This study deals with an I-shaped facility, in which the number of dock doors is varied to
analyze different situations. We further assume a manual internal transportation system,
with products being handled by workers using forklifts. Secondly, operational characteristics
include factors such as the service mode (exclusive when each door is assigned to in- or
outbound, else mixed) and the fact whether the pre-emption assumption is used. Pre-
emption in the context of cross-docking means that the loading or unloading of a truck can
be interrupted: the half-full trailer is removed from the dock, and replaced by another one.
Later on, the unfinished trailer has to revisit the terminal to finish processing (Boysen &
Fliedner, 2010). We consider a situation with an exclusive service mode and no pre-emption,
because of practical reasons. Finally, the third group entails flow characteristics. This
category describes the different ways in which flow could influence the performance of a
cross-dock. It includes the arrival pattern (whether the demand curve has peaks or a steady
flow), (un)restricted departure and/or arrival times, product interchangeability (not
interchangeable when products are meant for a specific outbound trailer) and the possibility
11
of temporary storage. We consider cross-docks with a random arrival pattern (so both
peaked and flat), no time restrictions, no interchangeability and without temporary storage.
To conclude this paragraph, the cross-dock we will be using is presented in Figure 4.
This I-shaped pre-distribution cross-dock has following characteristics:
customer assignment is known in advance
no temporary storage
manual internal transportation system
exclusive service mode
no pre-emption
random arrival pattern
no time restrictions, no deadlines
no interchangeability
INBOUND
Door 1
Door 2
Door 3
...
Door I
OUTBOUND
Door 1
Door 2
Door 3
...
Door J
Figure 4: Type of cross-dock used in this thesis
12
2.3 Cross-docking: advantages
As mentioned before, cross-docking has many advantages. First of all, there are the
numerous cost reductions, not only in inventory holding but also in the labor required.
Secondly, also the smaller storage area needed is a big advantage. The less space the storage
area requires, the more space is left for other value adding services. Moreover, since ideally
a well implemented cross-docking technique entails no inventory at all, the risk for damage
or loss is decreased enormously.
An improved customer service is another big advantage. Shorter delivery times and more
transparency (for example via RFID tracking) will lead to improved customer satisfaction and
in turn contribute to the company’s overall performance.
As previously stated, cross-docking also yields economies of transportation with Less-Than-
Truck load deliveries being consolidated at the cross-dock before being sent out to the
destinations. In this way, it is always ensured that outgoing trucks leave the facility fully
loaded (Full Truck Load), rather than some trucks containing empty load spaces. This “air
costs money too” principle entails the opportunity cost of lost profit, because more goods
could have been transported.
Finally, a last cross-docking benefit worth mentioning is the better match between supply
and demand. As cross-docks are more efficient and flexible than traditional warehouses,
variability and fluctuations can be better anticipated, leading to a better match of supply and
demand. Nevertheless, flexibility still remains something that should be developed
continuously. E.g. when confronted with a sudden increase in market demand, assigning
more trucks to the same doors, increasing the number of doors or organizing (scheduling)
the cross-docking facility in another way are all possible decisions that should be evaluated
(Van Belle et al., 2012).
All of the advantages listed above can also be seen in Figure 5. It shows a trends report,
summarizing the greatest benefits of cross-docking together with their relative importance.
The report was made both in 2008 and 2011 by Saddle Creek who commissioned an
13
independent party to invite industry professionals, responsible for and involved in
warehousing, distribution and/or transportation, to participate in an online survey. A total of
219 surveys were completed, making this research statistically valid.
Source: Saddle Creek Corporation, 2011 Cross-docking trends report
Figure 5: Greatest benefits of cross-docking
Besides many advantages, the cross-docking technique has a downside as well. The
complexity of assigning both in- and outbound trucks to doors, the difficulty of scheduling
incoming and outgoing trucks and the effort needed to efficiently operate a cross-docking
facility are highly demanding tasks. Taking into account a variety of factors and external
influences, cross-docking entails dealing with challenging problems and complicated
matters.
14
3 Structure of this study
This study is structured as follows. The next section first discusses the cross-docking concept
in more detail. Not only are all cross-docking related decisions identified in the order they
are encountered by decision makers, but furthermore their interdependence is explained. In
section 5, different research areas will be discussed and we will give a short overview of the
existing literature concerning the dock door assignment problem. Subsequently, in section 6,
the latter is discussed into more detail and a mathematical representation is provided. In
section 7, our solution approach is presented to solve the proposed model. By modifying an
existing heuristic we offer a way of assigning origins and destinations to cross-dock doors on
a mid-term horizon (e.g. every six months). Finally, in section 8 the developed heuristic is
integrated into a Greedy Randomized Adaptive Search Procedure, shortly GRASP, and the
results are discussed.
15
4 Exploring the cross-docking problem
This section identifies the different parts of the broader cross-docking problem and the
order in which they are encountered. Furthermore it describes how these parts are
interrelated. During the design and operational phases of cross-docking a lot of different
decisions have to be dealt with, ranging from long-term strategic or tactical decisions to
more short-term operational ones. Because these decisions are intertwined and can have a
significant impact on the efficiency of a terminal, cross-docking is a complex, multifaceted
problem and these decisions have to be carefully considered.
4.1 Cross-docking planning process
The first important decisions relate to the location and the physical layout of cross-docking
terminals. As a cross-dock will be part of a supply chain, these strategic decisions will have
an important impact on how goods flow through the network (Van Belle et al., 2012).
First of all, the number of cross-docks has to be determined together with their position
within the network. Facilities can either be located close to suppliers or close to customers
or they can be part of a Hub & Spokes-network. Either way, the most important aspect is
that the longer transport relationships are served by full trucks. E.g. suppliers that are
located within the same region, that serve the same target area and whose individual
deliveries are less than a full truckload, could be connected to a cross-dock located within
that region. The same holds for customers located within the same target area. Deliveries
are consolidated at the suppliers’ side and sorted in a cross-dock located within that target
area. When a cross-dock will be part of a Hub & Spokes-network the location problem
becomes more complex, as multiple terminals have to be located at the same time. Then the
goal is to find optimal locations for the different facilities while ensuring that supply covers
demand. Next, after the geographic location has been fixed, the layout of the cross-docking
terminals has to be determined. Not only the general shape of the cross-dock has to be
designed but also the arrangement and dimensions of the internal areas such as the storage
area, dock doors and administrative zones. Most importantly, the number of doors has to be
determined as this determines the size and capacity of the cross-dock. In order to accurately
determine the number of doors and in order to design the layout as efficiently as possible,
16
operational data about e.g. the number of trucks to be handled and their loads should be
anticipated. Moreover, as investment costs increase disproportionally with the number of
doors, the latter should be slightly overestimated to enable having spare capacity (Sinja-
Katharina Tiedemann, 2009). Based on the number of doors, the general shape can be
chosen. Next to the standard I-shape where the doors are located along the two long edges
of the I, alternative L-, T-, H-, and X-shapes exist (Bartholdi & Gue, 2004). When fixing the
general layout of a cross-dock, a trade-off has to be made between the reduced average
distance inside the dock and the increased possibility of congestion because of extra corners.
Figure 6 shows the effect of an inside corner on the space available for material handling
(Bartholdi & Gue, 2004).
Source: Bartholdi, J. J., & Gue, K. R. (2004). The best shape for a cross-dock.
Transportation Science, 38(2), 238. doi: DOI 10.1287/trsc.1030.0077
Figure 6: Inside corner limiting trailer parking space
Inside corners render some doors unusable (marked in dark and light grey) because there is
insufficient space for trucks inside the terminal to load or unload, whereas outside corners
limit the parking space in front of some doors.
17
The next problem in the planning process is the vehicle routing problem, as already
mentioned in the introduction. This operational decision entails deciding how goods should
be picked up from various locations before arriving at the cross-dock and how they should
be delivered after consolidation at the cross-dock. Pickup trucks usually start from and arrive
at the cross-dock facility simultaneously, whereas delivery trucks only return to the cross-
dock after finishing their routes (Liao, Lin, & Shih, 2010). The objective is to determine the
number of vehicles and their routes as well as the arrival times of each vehicle, so as to
minimize the sum of the operational costs and the transportation costs.
Once a truck arrives at the cross-dock, it has to be assigned to an unloading dock door, also
called a strip door. This decision is part of the dock door assignment problem, which not only
includes the assignment of incoming trucks to strip doors but also the assignment of
outgoing trucks to load or stack doors. In what follows the terms strip and unloading door
and stack and loading door will be used interchangeably. A good assignment can increase
the productivity and reduce the handling costs inside the cross-docking terminal. Because
outgoing trucks usually serve only a single destination, the assignment of outgoing trucks to
stack doors actually means assigning their corresponding destinations to these stack doors.
But before trucks can be assigned to a strip or stack door, the physical arrangement of these
doors has to be determined.
If there are more trucks than doors available, the dock doors can be seen as scarce resources
that have to be scheduled over time. This is the so-called truck scheduling problem that can
be subdivided into the tasks of unloading inbound trucks and loading outbound trucks.
Typically the unloading and loading operations are separated by a certain time lag,
depending on how efficiently the goods are handled inside the terminal (Boysen & Fliedner,
2010). The dock doors that process these two tasks are only able to process one truck at a
time and are assumed to be sufficiently equipped. Furthermore, because these doors can be
seen as scarce resources, the truck scheduling problem is formulated using a time related
objective function, linked to two interrelated decisions: where and when to process the
trucks.
18
Afterwards, once goods have been unloaded at the cross-docking facility, the next issue is
how goods should be handled inside the terminal. Although goods are directly transported
from ingoing trucks to outgoing trucks in a pure cross-docking context, some situations
require the goods to be temporarily stored in an intermediate storage area. This is for
example the case if goods have to be loaded in a certain order or if the goods have to wait
before its specific outbound truck arrives. The decision maker is then confronted with how
the goods should be assigned to the different parts of the temporary storage area. In most
cases the storage area consists of a number of parallel rows with enough space in between
to allow forklifts and workers to access the goods, that are stored either on the ground or in
racks (Vis & Roodbergen, 2008). The objective here is to determine the best storage location
taking into account handling times, waiting times and the total distance travelled inside the
cross-dock. Because the unloading and the loading dock door are usually known from solving
the dock door assignment problem, this can be done rather straightforwardly. Another
operational problem closely related with temporary storage is how employees should go
through the storage area to store or redistribute products (Vis & Roodbergen, 2011).
Finally, other problems associated with cross-docking include the choice of resources
necessary to perform the internal handling of the goods and the scheduling of these
resources. In most cases the goods are handled by a set of forklifts and a number of workers
operating these forklifts. In other cases the handling is performed by a set of conveyor belts
or AGVs (Automated Guided Vehicle). The objective for the decision makers, however,
remains the same in all cases: determine the right mix and optimal schedule of these
resources, as these partly determine the capacity of the cross-dock facility.
19
4.2 Problem overlaps
The next paragraphs explain how and to what extent the above discussed problems are
intertwined. Figure 7 below gives a schematic overview.
Figure 7: Problem overlaps
First of all, the bigger overlap denotes that the dock door assignment problem (DDA) can be
seen as part of the truck scheduling problem. The truck scheduling problem takes into
account temporal constraints and determines where and when trucks should be processed.
As mentioned above, the doors are considered as scarce resources that have to be
scheduled over time and the assignment of trucks to doors is normally executed on a short-
term horizon. However, if the assignment is performed on the mid-term, origins and
destinations are assigned instead of trucks and the truck scheduling problem that remains
only decides how trucks of the same origin or destination should be sequenced.
Next, there is an obvious link between the vehicle routing problem and the truck scheduling
problem. On the one hand the arrival times of the incoming trucks are determined by the
route the trucks drive. These arrival times are an important parameter as they determine
the earliest time a truck can be assigned to an unloading door. Also, the deadlines that have
to be taken into account when scheduling outbound trucks are usually set by the delivery
routes of these trucks. On the other hand, if the truck schedule also determines which goods
Location and Layout
Vehicle Routing
Truck Scheduling
Dock Door Assignment
Internal Resources
Temporary Storage
20
are combined in one truck, this in turn influences the routing of the outbound trucks (Van
Belle et al., 2012). As both problems are interrelated they could be solved together but this
would significantly increase the complexity. Furthermore, the routing also depends on the
location of the cross-dock in the network. For consumer-oriented cross-docks, the outbound
routing problem is more complex than the inbound routing problem, as a lot more different
routes have to be considered. The opposite is true for facilities located more closely to
suppliers.
Finally, the link with potentially the most operational impact is the one between the
scheduling of trucks and the scheduling of the internal resources needed to process the
trucks. The assignment of trucks to doors determines the distance that workers and forklifts
have to travel inside the terminal and hence heavily influences their workload. The impact is
even bigger if the assignment is performed on a short-term horizon. Also, if the workload is
not properly balanced, congestion can occur inside the terminal which could significantly
increase operational handling costs. So when tackling the truck scheduling problem, decision
makers should take the internal resources into account and should not lose sight of the
impact on operational performance.
21
5 Literature review
This section discusses existing literature about the dock door assignment problem.
5.1 Dock door assignment
As stated above, a good assignment can seriously influence the performance of the cross-
docking facility. Delays inside the dock can be reduced, the time necessary to transfer goods
from inbound to outbound trucks can be minimized and operational handling costs can be
controlled. The main objective is to determine the optimal arrangement of strip and stack
doors, the assignment of trucks to these doors and thirdly, the most efficient assignment of
destinations to stack doors, while minimizing the total distance travelled by internal handling
equipment (Gue, 1999). The assignment can be performed on a short-term or mid-term
horizon (Boysen & Fliedner, 2010). On the mid-term, origins and destinations are assigned to
dock doors for a longer period of time, e.g. 6 months. All trucks coming from the same origin
or going to the same destination are assigned to the same door. Assignment on the mid-
term limits the flexibility of the facility but simplifies the workload of the workers, as they
know exactly to which door loads have to be transferred. Of course reassignment is in order
when the shipping pattern changes significantly. The assignment can be executed on the
short term if enough information about incoming trucks is available in advance. Instead of
origins and destinations, trucks are then assigned to dock doors based on actual freight flow.
The latter of course results in a more complex working environment.
The most cited mathematical model used to describe the dock door assignment problem on
the mid-term is the one by Tsui and Chang (1990). In their approach they try to find an
optimal assignment of origins to receiving doors and destinations to shipping doors, so the
distance travelled by forklifts is minimized. They assume that each origin and destination can
only be assigned to one strip or stack door respectively. This Quadratic Assignment Problem
(QAP) is solved by first fixing the assignment of origins to receiving doors and then finding
the optimal assignment of destinations to shipping doors. In a second step, this resulting
outbound assignment is then used as the basis for assigning origins to receiving doors. These
steps are repeated until conversion occurs. The authors extended their study by introducing
a Branch and Bound algorithm to solve the bilinear problem (Tsui & Chang, 1992).
22
Bermúdez et al. (2001) adapted the model by Tsui and Chang (1992) to enable a mixed
assignment policy, which means that doors can have assigned either an origin or a
destination. Furthermore, they also used weighted travel distance and instead of using a
simple heuristic to solve the problem, they use a Genetic Algorithm to assign doors. By
changing real world factors (terminal shape, number of doors) and algorithm parameters
(population size, selection procedure, replacement procedure, mutation and cross-over
probabilities, etc.) they tested the performance of the GA under different circumstances and
compared it with a pairwise exchange method. Finally they also provide guidelines for the
fine-tuning of the GA parameters.
Another problem is considered by Zhu, Hahn, Liu, and Guignard (2009). In this paper the
authors also presented an extension of the dock door assignment model as defined by Tsui
and Chang (1992), but now the fundamental difference is that multiple origins or
destinations can be assigned to the same strip or stack door respectively. Therefore
additional parameters are added and the model is modified so as to relate it to the
Generalized Quadratic 3-dimensional Assignment Problem (GQ3AP), instead of the QAP used
by Tsui and Chang (1992). The GQ3AP is beyond the scope of this study and hence will not
be further discussed. Before the model is solved, the authors suggest a procedure for
generating origin and destination matrices in order to have realistic shipping volumes.
Furthermore they also defined several simple I-shaped cross-docks and used Manhattan
distances, to give an impression of how the transfer of goods is taking place. Finally they
compared results of the Branch-and-Bound algorithm by using different capacity levels for
both inbound and outbound doors.
Based on a General Assignment Problem (GAP) reduction, Guignard, Hahn, Pessoa, and da
Silva (2012) suggested two heuristics to solve the GQ3AP as defined by Zhu et al. (2009). In
the first, a similar procedure is executed as the one used by Tsui and Chang (1992). A
random solution of the inbound side acts as the basis for solving the outbound side and then
the outbound solution in turn is used to solve the inbound assignment problem. This
procedure is continued until no more improvement is found. The second heuristic is a multi-
start metaheuristic, designed for pure integer non-linear optimization and is called the
23
Convex Hull (CH) heuristic. When comparing it to the algorithm implemented by Zhu et al.
(2009), the results showed that both heuristics lead to better optimal solutions for larger
problem instances but that the B&B search performs as efficiently for instances smaller than
11x5 (11 origins, 11 destinations, 5 strip doors and 5 stack doors). A final contribution is the
way in which the door capacity is calculated: the total volume of goods from all origins is
divided by the total number of strip doors and then a capacity slack is added as a percentage
of total flow. The same procedure is used to fix the capacities of the stack doors, with slack
percentages ranging from 5% to 30%.
Bartholdi and Gue (2000) also studied the mid-term assignment of destinations but assume
that the inbound trucks will be assigned on the short-term. First of all, to model the
incoming trucks, they used the concept of an ‘average trailer’ where each truck is assumed
to contain a shipment for each destination j with a weight of wj, with wj being the average
weight of freight bound for destination j during some historical period. Next they addressed
the specification of doors as either strip or stack and the assignment of destinations to stack
doors as being the ‘layout’ of a cross-dock facility. Thirdly, because the authors believe that
the travel distance is not an accurate measure for determining an optimal ‘layout’, they
model the problem by using an objective function that minimizes the total labor costs.
Instead of the travel distance, the travel time should be taken into account, which also
depends on the type of freight, the used material handling system and congestion. Therefore
the total labor costs are defined as the sum of the travel costs and the costs caused by
several types of congestion, including floor space congestion. Finally, to solve the
assignment problem the authors used a Simulated Annealing procedure that exchanges pairs
of trucks sequentially. They used it on an existing cross-dock and based on the results, that
showed an 11.7% labor productivity improvement, they suggested some guidelines for
efficient ‘layouts’.
Gue (1999) uses the same notice of layout as Bartholdi and Gue (2000) but instead of
considering the freight flows from strip doors to destinations to be known and to be
independent from the ‘layout’, the author now assumes the opposite. He states that if
incoming trailers are assigned based on the content of trucks already waiting at the cross-
24
dock and the location of the doors, material flows depend on the ‘layout’ of the facility. The
result of this real-time look-ahead scheduling policy is that the material flows are altered,
which means that the ‘average trailer’ model no longer holds. To model these altered flows,
Gue (1999) constructs ‘biased trailers’, that contain freight that is biased towards those
destinations that are closest to the strip doors to which these trailers are assigned. E.g. when
a look-ahead policy is used, those strip doors nearest to the Brussels stack door will receive
more Brussels freight than those that are farther away. This is in strong contrast with each
strip door receiving the same amount of Brussels freight in the ‘average trailer’ model. To
examine the effect of the look-ahead scheduling and to find the layout with the lowest labor
cost, the author uses a local search algorithm on the solution space of all layouts, that swaps
pairs of trucks. Finally, simulation was used to test the different solutions and reported
savings in labor costs of 15 to 20%.
In (Yu, Sharma, & Murty, 2008) a semi-permanent layout is considered. This means that
instead of changing the layout periodically, as Gue (1999) did, the authors now assume not
only assigning the incoming trucks on the short-term but also the outbound trucks. Using the
data on the actual content of an inbound truck upon its arrival, an online-policy is suggested
that allocates trucks to doors based on the total travel time needed to consolidate the
freight. Each time multiple strip doors are available, the incoming truck is unloaded at the
door where the least man-hours are needed. When all doors are occupied, the truck is sent
to the yard to be parked temporarily and if a door becomes available the policy then
decides, in the same way, which of the parked trailers is to be unloaded. This online-policy
can obviously only be used when the assignment of the trucks, and thus the corresponding
destinations, has been fixed. Instead of using a deterministic model based on average
volumes between origin-destination pairs, the authors suggest a scenario-based stochastic
model to assign destinations. Each stack door is allocated one destination at the most and
the objective is to minimize the expected man-hours spent on consolidating freight daily.
This destination-door allocation problem is solved by a local search heuristic and a GA and
the results show a 20% reduction in travel time compared with current practice.
25
Y. Cohen and Keren (2008) and Yuval Cohen and Keren (2009) also modified the model
developed in (Tsui & Chang, 1992) not to enable doors having assigned multiple origins or
destinations, as Zhu et al. (2009) did, but the other way around. They introduced capacities
for both trucks and doors, which means that multiple shipping doors will have to be assigned
the same destination if the total flow to that destination exceeds the door capacity.
Furthermore they use incoming trucks instead of origins. All trucks contain specific amounts
of freight for all destinations and the objective now becomes assigning incoming trailers to
receiving doors and destinations to shipping doors. The assignment of inbound trucks is
done on the short term and destinations are assigned on a mid-term base. Finally, they also
assume an exclusive door assignment with one side of the I-shaped cross-dock consisting of
inbound doors whereas all outbound doors are located on the other side.
Because the complexity of their non-linear mixed integer model makes it hard for real size
problems they propose a simple heuristic based on clustering incoming trucks and
destinations. To test the performance of their heuristic they performed it on 20 arbitrarily
chosen cases of 10 inbound and 10 outbound trailers and the same number of strip and
stack doors. When comparing with the assignment heuristic by Tsui and Chang (1990), the
results show average savings of about 5%.
5.2 Overview
Table 3 provides an overview of all the above discussed papers according to the different
cross-dock characteristics as defined by Van Belle et al. (2012) and mentioned in the
introduction. In addition, two extra columns were added. One containing specific
contributions as compared to other papers and the other mentioning the solution
approaches used.
26
Papers Assignment Shape #Doors Internal Service Interchange- Temporary Specifics Solution
Type (O=origins, D=destinations,
T=trucks)
transport mode ability storage procedure
(Tsui & Chang, 1990) O/D I * Manually Exclusive No No I and O separately
(Tsui & Chang, 1992) O/D I * Manually Exclusive No No Branch & Bound
(Bermúdez et al., 2001) O/D * * Manually Mixed No ns Guidelines GA Genetic Algorithm
(Zhu, Hahn, Liu, & Guignard, 2009)
O/D I * Manually Exclusive No No Multiple-to-one Branch & Bound
assignments
(Guignard, Hahn, Pessoa, & da Silva, 2012)
O/D I * Manually Exclusive No No Slack door capacity
I and O separately, Convex Hull
(Bartholdi & Gue, 2000) T/D I * * Exclusive No Yes 'Average trailer' Simulated Annealing
(Gue, 1999) T/D I * Manually Exclusive No ns 'Biased trailer' Simulation
(Yu, Sharma, & Murty, 2008) T/D * * Manually Exclusive No ns Semi-permanent
Local Search and Genetic Algorithm
'layout'
(Y. Cohen & Keren, 2008) T/D I * Manually Exclusive No No Clustering Clustering heuristic
(Yuval Cohen & Keren, 2009) T/D I * Manually Exclusive No No Clustering Clustering heuristic
* = all values can be used ns = not specified
Table 3: Literature review
27
6 Defining the dock door assignment problem
Most papers encountered deal with the assignment of incoming trucks instead of their
corresponding origins. To the best of our knowledge there exist only five papers discussing
the mid-term assignment of both origins and destinations. As can be seen in Table 3, from
these five, only two were written less than five years ago with the first ones being more than
twenty years old. Because of this lack of academic research within this specific area of the
dock door assignment problem we decided to narrow our focus and look for innovative ways
to deal with this research area. From all papers discussing other dock door assignment
related issues, we only included the five discussed in the previous section because of their
important contribution. For a more extensive and up to date literature review we direct the
reader to (Van Belle et al., 2012) and (Shuib & Fatthi, 2012).
In this study we combine aspects from several of the discussed papers. First of all we only
consider I-shaped cross-docks, as this is the layout most frequently encountered in practice,
and we assume an exclusive assignment mode with one side dedicated to handling inbound
freight and the other side handling outbound flows. Secondly, we use the same assumption
as Yuval Cohen and Keren (2009) about the number of assigned doors per destination. We
guarantee that each destination is assigned to enough shipping doors so that delivery
requirements can be fulfilled. As we assign origins to strip doors rather than trucks, we also
make the same assumption for origins.
Furthermore, we also assume that multiple origins or destinations can be assigned to the
same door, as in (Zhu et al., 2009). The only difference is that we only allow such
assignments to be made if all doors have already been assigned at least one origin or
destination. In this way, it is ensured that all doors are used and less capacity is wasted by
having non-active doors. Finally, we also adapt the concept of slack door capacity as defined
in (Guignard et al., 2012), to take into account flows deviating from forecasts. If in a certain
week or month (depending on the length of the used mid-term horizon) the flow between a
specific origin-destination pair is higher than what was forecasted, having slack capacity
ensures that all freight can be processed. In this study, we assume a slack capacity of 25%.
28
The following subsection discusses the used parameters in greater detail and provides an
overview of the mathematical models used. First of all, the main assignment problem is
described. Next the sub-problem of assigning origins and destinations to already occupied
doors is discussed.
6.1 Mathematical formulation
As the multiple-to-one assignments are only allowed at the end, the NP-hard dock-door-
assignment problem can still be described as a Quadratic Assignment Problem (QAP), in
which both origins and destinations have to be assigned simultaneously. The model is given
below.
Parameters
First of all, the flows fmn between each origin-destination pair are defined as the total
amount of freight that will have to be consolidated at the cross-dock during one period.
Here flow will simply be expressed in ‘units of flow’ to enable our model being used in a
variety of situations where flow is either in tonnage, euro, m³, euro pallets or other units.
Secondly, because we assume an exclusive service mode the distance dij between any strip
door i and any stack door j is fixed and is defined as the Manhattan distance travelled by
forklifts and people inside the terminal, e.g.:
29
Figure 8: Manhattan distance in a cross-dock
Finally, the door capacity C is calculated by dividing the total flow of goods by max(origins;
destinations) because we assume that, taking into account that ideally each origin or
destination should be assigned to exactly one door, the number of doors should be equal to
either the number of origins or the number of destinations. By dividing by the maximum we
ensure that the waste of capacity, by having underutilized doors, is smaller.
Main problem
Decision variables
Formulation
Minimize
∑∑ ∑ ∑( )
Subject to
∑
∑
⌈ ⌉
∑
1
2
5
3
4
1
2
5
3
4
d21 = 2
d22 = 1
d23 = 2
d24 = 3
d25 = 4
30
∑
⌈ ⌉
The objective is to assign origins and destinations to inbound and outbound doors in order
to minimize the product of the distances and the corresponding flows. As a result, expenses
such as labor and material handling costs will be reduced significantly. Here our model
differs from the ones used in previous studies. First of all, Y. Cohen and Keren (2008) for
example use wmn instead of fmn, where wmn is defined as the amount of rectilinear trips
required to transport the flow coming from origin m, bound for destination n. As this has no
influence on the final assignments of origins and destinations we use fmn, which saves us
calculating these wmn values. Secondly, for origins or destinations that have been assigned to
two or more doors, the total flow fmn will be incorporated in the objective function value two
or more times. For example, consider following assignments made with the flow from origin
1 to destination 1 amounting to 100.
f11 = 100
As seen above, origin 1 has been assigned to door 1 and door 3. Therefore the objective
function will include the following expression for the flow from origin 1 to destination 1:
Similar calculations are made for the flow to destination 2, which
has also been assigned to two doors. In general, the objective function is then calculated as
follows:
+ ∑
for n=1,..., N
+ ∑
for m=1,..., M
1 1
2 2
1 3
3 2
31
This assumption of incorporating certain individual flows multiple times was most of all
made in order to enable the comparison of different cross-docks. In this way we can
compare the distances of several facilities without knowing whether loads are split inside
the dock or not. Once the dock door assignment is finished with multiple doors being
assigned to certain origins or destinations, it is up to the short-term planning process to
decide how and when flows should be divided between these multiple doors.
Constraints 1 and 3 assure that strip and stack doors can have assigned at most one origin or
destination respectively, whereas constraints 2 and 4 ensure that origins and destinations
can be assigned to multiple doors, based on their flows and the door capacity.
Because this QAP is NP-hard there exists, by definition, no algorithm for solving our
assignment problem in polynomial time. As Li, Pardalos, and Resende (1994) describe: “the
QAP is, computationally, one of the most difficult combinatorial optimization problems”. In
order to come to a near optimal solution for the dock-door-assignment problem we
developed a heuristic which offers an excellent trade-off between optimality and efficiency
(CPU time needed). The heuristic is fully described in the next section and a working example
is given to clarify all features of the heuristic.
Sub-problem
After solving the main problem, it is possible that some origins or destinations could not
have been fully assigned because there were more doors needed than available. As stated
earlier, we enable the allocation of those origins and destinations by assigning them to
already occupied doors. Because we only allow such assignments to be made at the end, we
model this as a sub-problem with its mathematical formulation given below.
Additional parameters
32
First of all, some additional parameters are required. sm and rn represent the volumes of
goods from origin m or to destination n that could not have been assigned yet. The
remaining volume from an origin is the difference between the total volume from that
origin, Sm and the product of the amount of times origin m has already been assigned and
the door capacity. This means that if a certain origin could not have been assigned at all, the
remaining volume equals the total volume. The same holds for the remaining volume to a
certain destination. The individual remaining flows from origins to destinations are
represented by gmn. Next, Ci and Cj represent the remaining capacities of all strip and stack
doors. These values are calculated based on the door capacity C and on the number of doors
needed for a certain origin or destination and the number of doors already assigned with
this origin or destination. E.g. consider a certain origin that needs three doors with all three
of them already assigned in the main problem. Then the first two doors have a remaining
capacity of zero whereas the capacity of the third door is the difference between the total
volume from that origin and two times the door capacity C. Again the same holds for
destinations.
Formulation
Minimize
∑∑ ∑ ∑( )
Subject to
∑
∑
33
Again the objective is to minimize the product of the distances and the corresponding flows,
but now the remaining flows are used to determine the objective function value. The
minimization objective here causes the biggest remaining origins and destinations to be
assigned as close as possible to their already allocated doors and as close as possible to the
middle of the dock, whereas the other smaller ones will be located more on the outsides.
Additionally, constraint 1 and 2 imply that multiple origins or destinations can be assigned to
one single door, as long as there is enough door capacity remaining.
If after solving the sub-problem still some origins and destinations remain unassigned, this
most likely indicates a shift in the flow pattern and means that an expansion of the cross-
docking facility may be necessary.
In the next section, we present a solution approach to tackle the mathematical problems
described above. First of all, the approach used by Yuval Cohen and Keren (2009) is
explained in more detail and we describe how we modified it, in order to use it in our mid-
term orientation of the dock door assignment problem. Afterwards our heuristic is fully
explained with a working example.
34
7 Solution approach
Influenced by the approach of Yuval Cohen and Keren (2009), explained below, we managed
to develop a heuristic to assign origins and destinations to cross-dock doors in a
performance wise excellent way. Because of the difficulties encountered while developing
and managing cross-docking operations, well-functioning heuristics contribute to the
efficient execution of these operations and their day-to-day handling. Improving the
performance of the cross-dock’s processes results in a better flow of goods, less costs,
greater staff satisfaction, etc. All these objectives in turn improve the competitive position of
the company and the company’s performance in general.
In what follows, first the basis of our developed heuristic is discussed through a detailed
example, in which we always describe why certain options and assumptions were chosen.
The different steps are described in the same order as they occur in the heuristic itself and
afterwards, a short general review is provided in the form of pseudo code. Next, a more
randomized approach is illustrated through the implementation of our heuristic in a Greedy
Adaptive Randomized Search Procedure or GRASP. Both in our heuristic and in the GRASP
metaheuristic, a best-improving local search optimization method is used to ultimately come
to a local optimum and find an outstanding dock door assignment solution for different
cross-dock sizes. After the provided pseudo code review of the heuristic-based GRASP, the
next section discusses the results to prove the efficiency of both methods and of our
heuristic in particular. Both solution approaches were programmed in Java™ using the
NetBeans IDE 7.3 programming environment.
7.1 Heuristic by Yuval Cohen and Keren (2009)
Starting from the freight quantities that have to be delivered to the different destinations,
the authors first assign destinations and trucks, corresponding to the three biggest freight
flows, to the middle doors of the cross-dock. In each iteration, they group destinations that
have already been assigned into a destination cluster and already assigned incoming trailers
to origin clusters. Then, based on an iteration counter, they either assign the destination
with the biggest flow from the existing origin cluster or the incoming trailer with the biggest
flow from the existing destination cluster. When assigning the chosen destination or
35
incoming trailer, they compare either positioning it on top of the previously assigned cluster
or at the bottom. The assignment option with the minimum freight travel distance is chosen.
The heuristic is continued until all destinations and incoming trailers have been assigned to a
dock door, including second doors for destinations with a flow exceeding door capacity.
7.2 LS-including heuristic
In this section, the different steps of our LS-including heuristic are fully explained through a
working example. They include the set-up phase, the initialization phase, the iterations
phase, a best-improving swap local search method and the final result.
Set-up phase
The heuristic starts by generating a truck database, containing the specific amounts of goods
bound for each destination loaded on each truck and the origin of each truck. E.g. truck nr. 1
is coming from origin 2 and has X cargo for destination A, Y cargo for destination B, Z cargo
for destination C, etc. Confer supra (p.28), we handle freight as a very abstract term, it could
be in tonnage, euro pallets, number of packages or other units depending on the type of
products being handled at the cross-dock. This truck database can either be generated
randomly or obtained from logistics companies.
Next, the flow table is constructed, which sums up the individual flows of all trucks coming
from the same origin and which further shows the total flow from each origin and to each
destination. These flows represent the amounts of goods to be handled at the facility during
the next months or weeks, depending on the length of the used mid-term planning horizon.
The final step of the set-up phase is the generation of a distance table, to be used to
calculate the final distance of the cross-dock. This table is rather straightforward and easy to
understand and is calculated according to the Manhattan distance metric (supra, p. 28).
In our working example, we used a randomly generated truck database of 100 trucks coming
from 9 origins (O) and going to 8 destinations (D). In order to uphold the “air costs money
too” principle, we assumed that each truck was fully loaded and used a truck capacity of 300
36
(arbitrarily chosen). All data from the set-up phase are given below. Table 4 shows the truck
database and Table 5 the resulting flow table. The cross-dock itself is displayed in Table 7
with the corresponding distance table given in Table 6.
Truck Nr. Origin D1 D2 D3 D4 D5 D6 D7 D8 TOTAL
1 7 105 8 174 9 4 0 0 0 300 2 2 157 5 22 2 5 1 13 95 300 3 2 2 0 2 112 0 178 5 1 300 4 7 0 0 0 23 55 76 124 22 300 5 8 0 18 21 0 260 0 1 0 300
6 7 8 1 0 12 0 98 180 1 300 7 8 6 156 1 0 13 0 124 0 300 8 5 0 1 3 6 261 0 29 0 300 9 7 7 57 17 3 66 2 8 140 300
10 8 13 115 0 1 12 4 147 8 300 11 4 36 1 3 1 0 259 0 0 300 12 9 0 5 0 64 54 71 67 39 300 13 4 13 4 12 20 9 31 84 127 300 14 9 0 0 0 0 2 135 0 163 300 15 2 0 4 0 8 6 40 1 241 300 16 4 0 0 0 156 5 14 0 125 300 17 7 21 2 39 0 2 230 5 1 300
18 7 0 0 174 14 1 32 79 0 300 19 8 4 2 244 0 13 4 25 8 300 20 1 0 0 23 13 1 141 122 0 300 21 9 3 43 61 4 24 12 58 95 300 22 6 0 34 0 239 0 2 0 25 300
23 8 243 4 1 37 2 8 2 3 300 24 9 0 1 49 243 7 0 0 0 300 25 5 21 198 22 1 1 1 0 56 300 26 2 0 1 284 8 0 0 1 6 300 27 5 52 6 152 76 2 2 1 9 300 28 5 79 4 1 0 14 0 193 9 300
29 1 2 6 15 258 0 7 12 0 300 30 6 51 2 4 27 38 19 154 5 300 31 7 154 19 0 1 9 4 113 0 300 32 6 7 78 21 4 5 70 106 9 300 33 6 4 32 128 28 2 90 5 11 300 34 6 0 4 0 0 15 1 8 272 300 35 5 4 198 1 0 96 0 1 0 300 36 3 4 30 198 0 68 0 0 0 300 37 2 0 0 284 0 0 0 0 16 300 38 5 0 277 0 13 0 10 0 0 300 39 4 2 4 2 28 160 87 5 12 300
37
40 1 0 16 3 23 0 0 257 1 300
41 2 0 63 0 0 1 5 228 3 300 42 8 244 9 0 7 1 30 4 5 300 43 5 9 3 0 37 0 0 0 251 300 44 4 1 7 0 157 0 2 133 0 300 45 9 94 0 8 12 7 111 61 7 300 46 7 0 0 2 2 0 0 196 100 300 47 3 9 23 17 18 2 81 9 141 300 48 1 1 3 99 0 0 0 37 160 300 49 4 112 8 75 22 7 63 12 1 300 50 1 0 270 28 0 1 0 0 1 300 51 1 7 1 3 147 1 7 4 130 300
52 7 101 0 30 1 0 0 1 167 300 53 2 156 0 0 1 23 0 110 10 300 54 2 18 0 2 122 0 2 0 156 300 55 3 15 4 17 14 0 58 2 190 300 56 8 6 0 0 214 0 74 4 2 300 57 8 44 0 0 0 30 0 61 165 300 58 5 54 28 10 0 7 15 10 176 300 59 5 0 0 6 2 290 0 0 2 300 60 5 12 78 175 11 0 21 1 2 300 61 1 1 80 6 192 0 8 12 1 300 62 4 144 5 70 23 49 5 0 4 300 63 3 0 48 2 22 29 32 167 0 300
64 5 0 78 187 15 5 3 10 2 300 65 9 3 0 1 3 19 61 10 203 300 66 2 0 0 7 27 0 0 266 0 300 67 7 71 0 18 83 1 0 50 77 300 68 3 1 256 1 12 8 5 16 1 300 69 5 0 0 0 0 18 282 0 0 300 70 3 27 4 5 11 1 18 234 0 300 71 2 8 0 4 0 1 278 3 6 300 72 4 3 0 2 207 10 11 1 66 300 73 7 2 1 0 0 3 32 239 23 300 74 1 0 1 0 0 0 0 277 22 300
75 1 0 13 0 4 23 73 187 0 300 76 3 0 30 0 0 26 244 0 0 300 77 5 33 196 0 1 52 12 3 3 300 78 4 0 192 70 11 0 1 9 17 300 79 2 263 0 1 0 2 0 0 34 300 80 6 5 1 1 53 0 24 0 216 300 81 9 0 0 0 0 14 255 0 31 300 82 6 63 120 0 0 0 1 58 58 300 83 9 56 37 0 2 158 0 21 26 300 84 2 0 38 72 2 0 188 0 0 300 85 9 0 17 120 1 3 0 158 1 300
38
86 9 0 4 30 1 0 22 242 1 300
87 5 145 0 12 0 1 0 141 1 300 88 5 8 0 3 14 4 39 216 16 300 89 2 0 0 63 0 151 86 0 0 300 90 8 4 1 185 2 6 41 13 48 300 91 9 13 0 2 12 191 14 14 54 300 92 7 37 3 27 136 0 0 52 45 300 93 8 0 9 2 1 0 287 0 1 300 94 6 2 35 10 153 0 5 3 92 300 95 9 228 0 15 13 2 2 40 0 300 96 8 275 0 4 1 1 8 11 0 300 97 1 31 4 20 29 14 5 136 61 300
98 8 0 29 253 17 1 0 0 0 300 99 2 37 191 0 2 2 53 0 15 300
100 8 179 66 0 33 4 17 1 0 300
TOTAL
3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Table 4: Heuristic truck database
O\D 1 2 3 4 5 6 7 8 TOTAL
1 42 394 197 666 40 241 1,044 376 3,000 2 641 302 741 284 191 831 627 583 4,200 3 56 395 240 77 134 438 428 332 2,100 4 311 221 234 625 240 473 244 352 2,700
5 417 1,067 572 176 751 385 605 527 4,500 6 132 306 164 504 60 212 334 688 2,400 7 506 91 481 284 141 474 1,047 576 3,600 8 1,018 409 711 313 343 473 393 240 3,900
9 397 107 286 355 481 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Table 5: Heuristic flow table
39
From / to Door 11 Door 12 Door 13 Door 14 Door 15 Door 16 Door 17 Door 18 Door 19 Door 20
Door 1 1 2 3 4 5 6 7 8 9 10
Door 2 2 1 2 3 4 5 6 7 8 9
Door 3 3 2 1 2 3 4 5 6 7 8
Door 4 4 3 2 1 2 3 4 5 6 7
Door 5 5 4 3 2 1 2 3 4 5 6
Door 6 6 5 4 3 2 1 2 3 4 5
Door 7 7 6 5 4 3 2 1 2 3 4
Door 8 8 7 6 5 4 3 2 1 2 3
Door 9 9 8 7 6 5 4 3 2 1 2
Door 10 10 9 8 7 6 5 4 3 2 1
Table 6: Heuristic distance table
Cross-dock
IN OUT
Door 1 Door 11
Door 2 Door 12
Door 3 Door 13
Door 4 Door 14
Door 5 Door 15
Door 6 Door 16
Door 7 Door 17
Door 8 Door 18
Door 9 Door 19
Door 10 Door 20
Table 7: Heuristic cross-dock
40
Initialization
The first step of the initialization phase is the assignment of one origin and one destination
to the middle door at both sides of the cross-dock. This origin and destination pair is simply
determined by finding the biggest flow in the flow table. In the example the biggest flow is
the one between origin 5 and destination 2 (1,067) and thus, they are assigned to the middle
doors of the cross-dock (Table 8 and Figure 9). If a cross-dock has an even number of doors,
the upper middle door is chosen arbitrarily. For an odd number of doors, the middle door
can easily be calculated by dividing the total number of doors at one side of the cross-dock
by two and rounding it up (e.g. 11 doors are initialized at door 6 and 16). This assumption
has no impact because, if needed, the cross-dock will be shifted up or down. After the initial
assignment has been made, the flow table is updated. The row and column corresponding to
the assigned origin and destination respectively now form the first clusters and the
intersection cell, initially containing the biggest flow, is now updated to zero (Table 9).
Secondly, we determine which origins and which destinations need more than one door
because of capacity constraints. With the door capacity being limited, it could happen that it
is impossible to process certain individual flows on a single door. Therefore, the algorithm
enables assigning a second (third, fourth, etc.) door to an origin or destination in future
iterations by putting the remaining unassigned flow back in the flow table at the beginning
of the iteration. In this way the origin or destination becomes a possible candidate again
when looking for the biggest flow (in the cluster row and column) in a subsequent iteration.
This will be illustrated in more detail in the next subsection. This means that in the rare case
the flow between the initial assignments exceeds the door capacity, the intersection cell in
the flow table is updated to the difference between this total flow and the door capacity,
instead of zero.
Based on the slack capacity of 25% (supra, p.27), the door capacity in our example is
(
) . Multiple doors are needed for origins 2 and 5 and for
destinations 6, 7 and 8. Here, the remaining flow between origin 2 and destination is 0 as
seen in Table 9.
41
O\D 1 2 3 4 5 6 7 8 TOTAL
1 42 394 197 666 40 241 1,044 376 3,000 2 641 302 741 284 191 831 627 583 4,200 3 56 395 240 77 134 438 428 332 2,100 4 311 221 234 625 240 473 244 352 2,700 5 417 1,067 572 176 751 385 605 527 4,500 6 132 306 164 504 60 212 334 688 2,400 7 506 91 481 284 141 474 1,047 576 3,600 8 1,018 409 711 313 343 473 393 240 3,900
9 397 107 286 355 481 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Table 8: Heuristic initial flow table
Cross-dock
IN OUT
0 0
0 0
0 0
0 0
5 2
0 0
0 0
0 0
0 0
0 0
Figure 9: Heuristic cross-dock initialization
O\D 1 cluster 3 4 5 6 7 8 TOTAL
1 42 394 197 666 40 241 1,044 376 3,000
2 641 302 741 284 191 831 627 583 4,200 3 56 395 240 77 134 438 428 332 2,100 4 311 221 234 625 240 473 244 352 2,700
cluster 417 0 572 176 751 385 605 527 4,500 6 132 306 164 504 60 212 334 688 2,400 7 506 91 481 284 141 474 1,047 576 3,600 8 1,018 409 711 313 343 473 393 240 3,900
9 397 107 286 355 481 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Table 9: Heuristic updated flow table
42
Iteration N
After the set-up phase and the initialization, our heuristic builds up the final cross-dock in an
iterative way. The same clustering technique is used as the one by Yuval Cohen and Keren
(2009) in which clusters are formed containing the already assigned origins or destinations
and in which the flow table is updated. The main difference is that we do not restrict
At the beginning of each iteration, the flow table is updated a first time by calculating the
remaining ‘to assign’ flows. These flows are zero if an origin or a destination has already
been assigned to the exact number of doors it required, or positive if one or more doors are
still needed. One example of the latter case would be the situation where the capacity of a
door, assigned with an origin or destination already present in the cross-dock, was exceeded
due to a previous assignment. Then the flow table will have been updated to contain the
excess flow from the origin or destination assigned to that door. In this way it has become a
possible candidate again for assignment in the current iteration.
To determine the origin or destination to be assigned next, the biggest flow from the current
origin cluster or to the current destination cluster is determined. This is done by searching in
the cluster column and cluster row, i.e. the row and column corresponding to the initially
assigned origin and destination. This differs from the approach used by Yuval Cohen and
Keren (2009) where origins and destinations are selected alternately in successive iterations.
Once the next origin or destination to be assigned is selected, two assignment options are
compared: one at the top of the assignments already present in the cross-dock and one at
the bottom. Both options are compared based on their corresponding distance and the best
one is chosen. In case of a tie, the assignment at the bottom is chosen arbitrarily to balance
the arbitrary assignment of the middle door made in the initialization. The distance is
calculated as the distance travelled from one door to another multiplied by corresponding
flow. Thereafter, the flow table is updated a second time. The assigned origin or destination
flows are added to the cluster row or column and the cluster is updated to contain the
newly assigned origin or destination as well. The row or column corresponding to the just
assigned origin or destination is set to zero.
43
When looking at the cluster row and the cluster column in the initial flow table of the
working example (Table 10), we see that the largest flow (751) comes from origin 5, which is
already assigned, to destination 5. Comparing the option of assigning destination 5 at door
14 with the option of assigning it at door 16 results in a tie, arbitrarily broken by assigning
destination 5 at the bottom. In Table 11, the updated flow table is shown after assigning
destination 5 and updating the cluster row and column.
O\D 1 cluster 3 4 5 6 7 8 TOTAL
1 42 394 197 666 40 241 1,044 376 3,000
2 641 302 741 284 191 831 627 583 4,200 3 56 395 240 77 134 438 428 332 2,100 4 311 221 234 625 240 473 244 352 2,700
cluster 417 0 572 176 751 385 605 527 4,500 6 132 306 164 504 60 212 334 688 2,400 7 506 91 481 284 141 474 1,047 576 3,600 8 1,018 409 711 313 343 473 393 240 3,900
9 397 107 286 355 481 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Table 10: Heuristic starting flow table iteration 1
Cross-dock
IN OUT
0 0
0 0
0 0
0 0
5 2
0 5
0 0
0 0
0 0
0 0
Figure 10: Heuristic cross-dock iteration 1
44
O\D 1 cluster 3 4 5 6 7 8 TOTAL
1 42 434 197 666 0 241 1,044 376 3,000 2 641 493 741 284 0 831 627 583 4,200 3 56 529 240 77 0 438 428 332 2,100 4 311 461 234 625 0 473 244 352 2,700
cluster 417 0 572 176 0 385 605 527 4,500 6 132 366 164 504 0 212 334 688 2,400 7 506 232 481 284 0 474 1,047 576 3,600 8 1,018 752 711 313 0 473 393 240 3,900
9 397 588 286 355 0 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Table 11: Heuristic flow table iteration 1
All iterations follow the same approach: the remaining flows are calculated and the flow
table is updated, the next origin or destination is determined and assigned at the top or at
the bottom. Finally, they are added to the cross-dock and the flow table is updated again. An
overview of all iterations is provided in Appendix 1.1.
Three interesting situations that could occur are explained below. First of all, some academic
papers automatically assign a second door to an origin or destination if the door capacity is
exceeded. In our heuristic this is not the case. The flow table is updated with excess flows
and the origin-destination pair becomes a new candidate in subsequent iterations. By doing
so, we are able to compare the importance of assigning a second (or third, fourth, etc.) door
with the importance of assigning a yet unassigned origin or destination. Although data could
suggest that multiple doors are needed for a certain origin or destination, in reality not all
flows will arrive at the same time. Consider following example: suppose we have to assign
one origin X with a total flow of (door capacity+1) and an origin Y with a flow near full door
capacity, say (door capacity-1). The probability of all flow coming from origin X arriving
together at one point in time is very small. If we would automatically assign a second door to
this origin after assigning the first one, this second door would have a probability of nearly 1
to be idle constantly. As a consequence it could be possible, when all doors are assigned an
origin or destination, that origin Y could not be assigned at all. This would mean that a lot of
flow remains unprocessed, which would seriously deteriorate the performance of the cross-
dock. In our heuristic this will never be the case. The (+1) excess capacity after assigning
origin X will be left in the flow table. In successive iterations the flow from other origins,
45
including Y, will most likely be bigger than this (+1) and as a result the other origins will be
assigned first, reducing the risk of origin Y not being assigned in the end.
A second very interesting situation occurs in iteration 10. The resulting cross-dock after
assigning origin 7 in iteration 9 can be seen in Figure 11. In iteration 10 destination 8 needs
to be assigned. After comparing the two assignment options, the assignment to door 11
turned out to be the most optimal one. As this would cause the cross-dock to become fully
occupied at the top and limit the number of assignment options of destinations in
subsequent iterations to only one, namely at the bottom, the cross-dock is shifted
downwards. Of course this is only possible if enough space is available at the bottom
(minimum two doors). The same rules apply for shifting the cross-dock upwards. This shifting
has no impact on distances or flows whatsoever but on the contrary retains the choice
between assignment at the top or at the bottom, increasing the possibility of a better final
solution. Hence destination 8 is assigned to door 12 instead of door 11, as can be seen in
Figure 12.
Cross-dock
IN OUT
0 0
7 7
9 6
2 3
5 2
8 5
0 1
0 0
0 0
0 0
Figure 11: Heuristic cross-dock iteration 9
Cross-dock
IN OUT
0 0
0 8
7 7
9 6
2 3
5 2
8 5
0 1
0 0
0 0
Figure 12: Heuristic cross-dock iteration 10
To illustrate the total distance, equal to 49,540 after iteration 10, the calculations are shown
below.
46
49,540 = (576x2) + (620x3) + (583x4) + (527x5) + (240x6) + (1,047x1) + (671x2) + (627x3) +
(605x4) + (393x5) + (474x2) + (683x1) + (831x2) + (385x3) + (473x4) + (481x3) + (286x2) +
(741x1) + (572x2) + (711x3) + (91x4) + (107x3) + (302x2) + (1,067x1) + (409x2) + (141x5) +
(481x4) + (191x3) + (751x2) + (343x1) + (506x6) + (397x5) + (641x4) + (417x3) + (1,018x2)
Thirdly, in iteration 16 the total flow going to destination 7 (5,393) exceeds the door capacity
of 4,166. After updating the flow table for the first time in the beginning of this iteration, a
flow of ), still to be assigned, was re-entered in the cluster row, as
seen in Table 12. This remaining flow is now the biggest, indicating that a second door is
needed for destination 7. The updated cross-dock and flow table are shown in Table 13 and
Figure 13.
O\D 1 cluster 3 4 5 6 7 8 TOTAL
1 0 0 0 0 0 0 0 0 3,000 2 0 34 0 0 0 0 0 0 4,200 3 0 0 0 0 0 0 0 0 2,100 4 0 0 0 0 0 0 0 0 2,700
cluster 0 334 0 0 0 44 1,227 128 4,500
6 0 0 0 0 0 0 0 0 2,400 7 0 0 0 0 0 0 0 0 3,600 8 0 0 0 0 0 0 0 0 3,900
9 0 0 0 0 0 0 0 0 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Table 12: Heuristic starting flow table iteration 16
O\D 1 cluster 3 4 5 6 7 8 TOTAL
1 0 0 0 0 0 0 0 0 3,000 2 0 34 0 0 0 0 0 0 4,200
3 0 0 0 0 0 0 0 0 2,100 4 0 0 0 0 0 0 0 0 2,700
cluster 0 334 0 0 0 44 0 128 4,500 6 0 0 0 0 0 0 0 0 2,400 7 0 0 0 0 0 0 0 0 3,600 8 0 0 0 0 0 0 0 0 3,900
9 0 0 0 0 0 0 0 0 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Table 13: Heuristic flow table iteration 16
47
Cross-dock
IN OUT
6 7
4 4
1 8
7 7
9 6
2 3
5 2
8 5
3 1
0 0
Figure 13: Heuristic cross-dock iteration 4
As a final remark, we would again like to mention that if there are already multiple doors
assigned to either an origin or a destination, we take the flow multiple times into account
when we calculate the final result. Besides enabling a better comparison of cross-docks, this
also decreased the programming complexity.
Best-improving swap local search method
After constructing a solution with the above heuristic, we used a local search method in
order to find a local optimum. This rather simple LS procedure consists of two phases. In the
first phase, all possible swaps of two origins or two destinations were analyzed and in a
second phase, the best possible swap was selected and carried out. This procedure was
executed until no more improvements were found, resulting in a final solution that can be
found in Appendix 1.1. A schematic overview of the heuristic is given in Figure 14 and the
pseudo code can be found in Appendix 1.1 as well.
48
SET-UP Generate truck database, flow table and distance table
INITIALIZATION Initial cluster generation
Assign the origin and destination corresponding to the biggest flow entry to the middle of the dock
Update flow table and calculate multiple door requirements
Update flow table: calculate ‘to assign’ flows
Assign to the door corresponding to the minimal freight travel distance of the two assignment options
Shift cross-dock if necessary
Determine origin or destination to be assigned next
Increase iterations counter
Figure 14: Schematic overview heuristic
49
7.3 Heuristic-based GRASP
In addition to the development of our LS-including heuristic, we investigated the possibility
of implementing it into a more flexible GRASP consisting of a construction and a local search
phase. For a more detailed explanation of the GRASP algorithm we redirect the reader to (Li
et al., 1994). In the set-up phase, things remain unchanged and the same truck database,
flow table and distance table are used. The heuristic-based GRASP construction phase
consists of the initialization phase and the iteration phase but with some subtle differences
worth mentioning. Instead of one initial solution now ten different solutions are
constructed. In the consequent local search phase, a local optimum is found for each of the
starting solutions and the best solution is selected as the final result of the heuristic-based
GRASP.
Construction phase (initialization and iteration phase)
In the initialization phase of the heuristic, the origin and destination with the largest flow
were chosen and assigned to the middle doors of the cross-dock. Now, instead of choosing
an origin or destination corresponding to the biggest flow, a Restricted Candidate List,
containing the 20% best assignments, is constructed both in the initialization phase and in
each iteration and the assignment to be made next is chosen randomly (Mauricio G. C.
Resende, 2009). This random selection leads to a variety of different solutions and as already
mentioned, we used ten initial solutions.
In our working example, origin 5 and destination 2 are not necessarily chosen in the
initialization step, but instead the flow to be assigned is chosen randomly from all possible
candidates in the RCL (here with a size equal to ). These candidates are
highlighted in Table 14. Randomly, 1,047 was selected and the corresponding origin 7 and
destination 7 were assigned to the middle doors of the cross-dock.
50
O\D 1 2 3 4 5 6 7 8 TOTAL
1 42 394 197 666 40 241 1,044 376 3,000 2 641 302 741 284 191 831 627 583 4,200 3 56 395 240 77 134 438 428 332 2,100 4 311 221 234 625 240 473 244 352 2,700 5 417 1,067 572 176 751 385 605 527 4,500 6 132 306 164 504 60 212 334 688 2,400 7 506 91 481 284 141 474 1,047 576 3,600 8 1,018 409 711 313 343 473 393 240 3,900
9 397 107 286 355 481 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Table 14: GRASP initial flow table
Except for this additional candidate list, all other calculations remain the same as in our
developed heuristic. Furthermore this procedure is executed ten times in order to have ten
starting solutions to be used in the local search method.
Local search phase
In this phase a best-improving local search method, identically to the one used in the LS-
including heuristic, is executed on each starting solution. After performing this phase,
instead of having only one improved initial solution there are ten. Hereafter, the best
solution then serves as the final result. The fully executed example of the heuristic-based
GRASP can be found in Appendix 1.2, together with the pseudo code.
To conclude this section, the heuristic-based GRASP also includes an option to assign
unassigned origins or destinations. It is possible that some origins or destinations could not
have been assigned after performing the algorithm because of our assumption of only
assigning one origin or destination to each door. Nevertheless, we included a kind of
compromise option where a suggestion can be made where to assign these origins and
destinations. Confer supra (p. 28), solving this sub-problem is done by determining to which
door the latter should ideally be assigned. Based on the remaining capacity of each door, the
remaining origins and destinations are assigned to already occupied doors, as close as
possible to the doors to which they had already been assigned the first time. Note that this
suggestion is done after the local search. The same compromise option was added for the
LS-including heuristic.
51
8 Results
This section describes how we tested the performance of our solution approaches using
simulation. The results were obtained by running both algorithms on a 2.27 GHz computer
with 4 GB of RAM.
To evaluate the performance of both the LS-including heuristic and the heuristic-based
GRASP, we considered 15 different assignment scenarios. Each scenario represents an
assignment problem in a cross-dock characterized by a specific number of doors, origins and
destinations. Doors range from ten (5 strip and 5 stack) for the first scenario to 150 (75 strip
and 75 stack) for the last scenario. We neglected problems bigger than 150 doors, as this is
the biggest preferable number of doors for an I-shaped cross-dock. Beyond 150 doors the
dock should be expanded with a segment in the center, creating a T (Bartholdi & Gue, 2004).
The number of origins and destinations was set equal to the number of doors in each
scenario, as this represents the most complex and time consuming situation our approaches
have to deal with. The number of trucks used in each scenario is 1000, with a truck capacity
of 300 and the slack capacity used was 25%.
For each scenario we calculated average CPU times for both the LS-including heuristic and
the heuristic-based GRASP. For the first we calculated the average time needed to come to a
starting solution by using the clustering technique, described in the previous section, as well
as the average time needed by the local search algorithm to come to the local optimum by
improving this starting solution. For the second, we calculated the average time needed to
construct the ten starting solutions and again the time needed by the local search algorithm
as well. To calculate these averages we used a simulation of 100 runs for each scenario. A
general overview is given in Table 15.
52
DOORS
HEURISTIC HEURISTIC-BASED GRASP
Starting solution Local search Construction Local search
Distance Time Distance Time Distance
(best starting solution)
Time Distance Time
10 765,312.45 7.04 758,791.73 0.00 761,358.45 5.19 756,281.51 0.63
20 1,235,116.77 8.52 1,213,668.04 0.95 1,233,506.46 49.08 1,207,155.82 21.20
30 1,676,490.92 12.62 1,639,101.26 10.62 1,684,200.58 222.43 1,626,679.43 175.66
40 2,097,659.73 24.31 2,041,814.73 52.29 2,119,035.02 738.34 2,027,150.03 851.17
50 2,514,528.96 56.96 2,440,097.89 172.99 2,555,313.86 1,864.41 2,421,820.97 2,833.75
60 2,918,096.40 124.83 2,820,269.21 449.26 2,998,645.79 4,131.47 2,810,678.19 7,710.55
70 3,315,358.41 225.42 3,195,527.22 1,082.12 3,450,215.12 7,173.83 3,198,580.95 17,395.91
80 3,683,217.56 400.53 3,544,332.90 2,131.55 3,866,962.94 13,668.27 3,557,271.71 35,317.62
90 4,074,609.27 691.27 3,907,778.98 3,965.68 4,311,355.08 22,477.35 3,932,055.95 65,961.92
100 4,446,433.23 1,115.48 4,246,783.93 8,310.05 4,753,625.52 36,292.63 4,279,394.13 116,365.33
110 4,821,809.19 1,730.36 4,575,116.88 16,781.40 5,196,640.48 57,162.69 4,634,528.38 207,033.76
120 5,174,860.41 2,639.65 4,915,043.55 18,329.60 5,642,385.01 83,497.19 4,984,834.43 317,857.26
130 5,545,076.03 3,636.59 5,234,742.90 44,211.69 6,067,931.63 131,768.91 5,313,822.27 441,675.38
140 5,921,688.75 5,450.13 5,570,335.82 41,244.10 6,500,069.19 178,314.05 5,653,286.57 603,383.04
150 6,294,136.19 7,289.68 5,902,446.47 60,270.75 6,926,022.49 241,042.76 5,952,263.70 865,051.20 Table 15: General simulation overview
53
Based on the average values for CPU time and distance, we made three comparisons.
Heuristic starting solution vs. Local search
First of all, we compared the heuristic starting solution with the improved solution found by
the local search algorithm. For smaller problems (less than 70 doors) the local search found
improvements in the total distance of up to roughly 3.50% and required less than a second
to find the local optimum. For bigger problems it required more time but found bigger
improvements, as can be seen in Figure 15 and Figure 16 below. Note that this time increase
is only a couple of seconds. On average the local search procedure yielded a 3.84%
improvement in distance with a maximum of 6.22% for the biggest problem with 150 doors.
Figure 15: % improvement through Local search
0.00%
1.00%
2.00%
3.00%
4.00%
5.00%
6.00%
7.00%
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150
Doors
Local search improvement (%)
54
Figure 16: CPU time heuristic and Local search
As Figure 16 clearly shows, for both the heuristic starting solution and the local search
algorithm the CPU time increases exponentially with the number of doors. Furthermore the
CPU time for the local search increases much faster than the one of the heuristic. For the
scenario with 100 doors for example (Table 16), a starting solution was found in just over a
second and the local search takes around 8 seconds to improve this solution, whereas in the
scenario with 150 doors the heuristic already needs 7 seconds and the local search around 1
minute, which is 7 times as long as in the scenario with 100 doors.
0
2,000
4,000
6,000
8,000
10,000
12,000
14,000
16,000
18,000
20,000
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150
Doors
Time (ms)
Heuristic
Local search
55
DOORS Heuristic Local search
% improvement Distance Time Distance Time
10 765,312.45 7.04 758,791.73 0.00 0.85%
20 1,235,116.77 8.52 1,213,668.04 0.95 1.74%
30 1,676,490.92 12.62 1,639,101.26 10.62 2.23%
40 2,097,659.73 24.31 2,041,814.73 52.29 2.66%
50 2,514,528.96 56.96 2,440,097.89 172.99 2.96%
60 2,918,096.40 124.83 2,820,269.21 449.26 3.35%
70 3,315,358.41 225.42 3,195,527.22 1,082.12 3.61%
80 3,683,217.56 400.53 3,544,332.90 2,131.55 3.77%
90 4,074,609.27 691.27 3,907,778.98 3,965.68 4.09%
100 4,446,433.23 1,115.48 4,246,783.93 8,310.05 4.49%
110 4,821,809.19 1,730.36 4,575,116.88 16,781.40 5.12%
120 5,174,860.41 2,639.65 4,915,043.55 18,329.60 5.02%
130 5,545,076.03 3,636.59 5,234,742.90 44,211.69 5.60%
140 5,921,688.75 5,450.13 5,570,335.82 41,244.10 5.93%
150 6,294,136.19 7,289.68 5,902,446.47 60,270.75 6.22%
Average 3.84%
Table 16: Heuristic vs. Local search
Heuristic starting solution vs. GRASP construction phase
Secondly, we compared the heuristic starting solution with the construction phase of the
GRASP. As using a different number of starting solutions had no effect on the total distance
and even slowed down the GRASP, we used ten starting solutions in all scenarios. When
comparing the distance of the heuristic starting solution with the distance of the best
starting solution of the GRASP, our results show that the heuristic starting solution clearly
outperforms the GRASP construction phase, shown in Figure 17, with a difference of up to
roughly 10% for the biggest problem. This difference is defined as the distance of the
GRASP’s best starting solution relative to the distance of the starting solution of the
heuristic. The average difference across all scenarios amounts to 4.87%, as seen in Table 17.
56
Figure 17: Distance comparison of initial solutions
Figure 18: CPU time for generating the initial solutions
When looking at the time required to calculate the solution, Figure 18 again shows an
exponential increase with the number of doors. Obviously the time required to find the best
starting solution with the GRASP construction phase compared to that of the heuristic is
much higher because it first has to construct all ten starting solutions before choosing the
best one.
0.00
1,000,000.00
2,000,000.00
3,000,000.00
4,000,000.00
5,000,000.00
6,000,000.00
7,000,000.00
8,000,000.00
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150
Doors
Distance
Heuristic Best starting solution GRASP
0
5,000
10,000
15,000
20,000
25,000
30,000
35,000
40,000
45,000
50,000
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150
Doors
Time (ms)
Heuristic
Best starting solution GRASP
57
DOORS Heuristic Best starting solution GRASP
% difference Distance Time Distance Time
10 765,312.45 7.04 761,358.45 5.19 -0.52%
20 1,235,116.77 8.52 1,233,506.46 49.08 -0.13%
30 1,676,490.92 12.62 1,684,200.58 222.43 0.46%
40 2,097,659.73 24.31 2,119,035.02 738.34 1.02%
50 2,514,528.96 56.96 2,555,313.86 1,864.41 1.62%
60 2,918,096.40 124.83 2,998,645.79 4,131.47 2.76%
70 3,315,358.41 225.42 3,450,215.12 7,173.83 4.07%
80 3,683,217.56 400.53 3,866,962.94 13,668.27 4.99%
90 4,074,609.27 691.27 4,311,355.08 22,477.35 5.81%
100 4,446,433.23 1,115.48 4,753,625.52 36,292.63 6.91%
110 4,821,809.19 1,730.36 5,196,640.48 57,162.69 7.77%
120 5,174,860.41 2,639.65 5,642,385.01 83,497.19 9.03%
130 5,545,076.03 3,636.59 6,067,931.63 131,768.91 9.43%
140 5,921,688.75 5,450.13 6,500,069.19 178,314.05 9.77%
150 6,294,136.19 7,289.68 6,926,022.49 241,042.76 10.04%
Average 4.87%
Table 17: Initial solution comparison
LS-including heuristic vs. heuristic-based GRASP
Thirdly we compared the performance of the LS-including heuristic and the heuristic-based
GRASP. The results reveal some remarkable differences.
Figure 19: % improvement of heuristic-based GRASP
-2.00%
-1.50%
-1.00%
-0.50%
0.00%
0.50%
1.00%
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150
Doors
Heuristic-based GRASP improvement (%)
58
Figure 19 shows that for smaller problems the heuristic-based GRASP performs better than
the LS-including heuristic, with an average improvement of 0.57% across all six improvement
scenarios, but performs worse for bigger problems. For the scenario with 140 doors for
example it performs 1.49% worse (Table 18).
Figure 20: CPU time LS-including heuristic and heuristic-based GRASP
Again the amount of time required increases exponentially. On average the LS-including
heuristic takes around 0.5 seconds to solve the scenario with 60 doors, whereas it takes 40
times as long to solve the 120 doors scenario. Almost the same holds for the heuristic-based
GRASP, which requires around 12 seconds to solve the 60 doors problem and almost 7
minutes to solve the 120 doors problem.
0.00
50,000.00
100,000.00
150,000.00
200,000.00
250,000.00
300,000.00
350,000.00
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150
Doors
Time (milliseconds)
Heuristic with LS
GRASP
59
DOORS Heuristic with LS Heuristic-based GRASP
% improvement Distance Time Distance Time
10 758,791.73 7.04 756,281.51 5.82 0.33%
20 1,213,668.04 9.47 1,207,155.82 70.28 0.54%
30 1,639,101.26 23.24 1,626,679.43 398.09 0.76%
40 2,041,814.73 76.60 2,027,150.03 1,589.51 0.72%
50 2,440,097.89 229.95 2,421,820.97 4,698.16 0.75%
60 2,820,269.21 574.09 2,810,678.19 11,842.02 0.34%
70 3,195,527.22 1,307.54 3,198,580.95 24,569.74 -0.10%
80 3,544,332.90 2,532.08 3,557,271.71 48,985.89 -0.37%
90 3,907,778.98 4,656.95 3,932,055.95 88,439.27 -0.62%
100 4,246,783.93 9,425.53 4,279,394.13 152,657.96 -0.77%
110 4,575,116.88 18,511.76 4,634,528.38 264,196.45 -1.30%
120 4,915,043.55 20,969.25 4,984,834.43 401,354.45 -1.42%
130 5,234,742.90 47,848.28 5,313,822.27 573,444.29 -1.51%
140 5,570,335.82 46,694.23 5,653,286.57 781,697.09 -1.49%
150 5,902,446.47 67,560.43 5,952,263.70 1,106,093.96 -0.84%
Average improvement 0.57%
Average decline -0.93%
Table 18: LS-including heuristic vs. Heuristic-based GRASP
Some final conclusions can be drawn from these simulations. For small problems, when
choosing between the LS-including heuristic or the heuristic-based GRASP, a trade-off has to
be made between a superior final dock door assignment (i.e. smaller total distance) and the
CPU time needed. For problems with less than 70 doors, both approaches succeed in finding
a local optimum, the heuristic-based GRASP however finds a slightly better one but requires
exponentially more time to do this. E.g. for 60 doors, the latter requires 20 times as long to
find the a local optimum of 2,810,678.19 compared to the 2,820,269.21 of the LS-including
heuristic. For bigger problems the LS-including heuristic clearly outperforms the heuristic-
based GRASP. Not only does the heuristic find a better local optimum but it also requires
much less time to do this. For a problem with 150 doors, the LS-including heuristic needs just
over 1 minute to find a local optimum of 5,902,446.47 whereas the GRASP requires around
18 minutes to find a local optimum of 5,952,263.70.
60
9 Conclusion
9.1 Summary of this thesis
In this thesis, the dock door assignment in a cross-dock was optimized through the
development and use of a heuristic. Cross-docking is a inventory-minimizing distribution
strategy in which trucks, coming from different origins, consolidate their freight in order to
fulfill the demand for all destinations. It has many advantages which contribute heavily to
the overall supply chain performance, especially when looking at costs and customer
satisfaction. The cross-dock studied in this thesis was a one-touch pre-distribution cross-
dock where we assumed an ideal situation with no inventory and full information
availability. Moreover, this study deals with an I-shaped facility with an exclusive assignment
mode and where products are handled manually.
During recent years, cross-docking has been a booming topic in academic literature. We
focused only on the dock door assignment problem, where origins and destinations are
assigned to respectively inbound and outbound doors on a mid-term planning horizon. We
chose this narrowed focus because it was a research area rather unexplored in recent years.
To finalize an efficient and operational advantageous assignment of origins and destinations
to in- and outbound doors, we developed a LS-including heuristic based on (Yuval Cohen &
Keren, 2009). We made some significant adaptations and were able to test extensively. The
heuristic consists of an initialization phase where both an origin and destination are assigned
to the central door of the cross-dock. In order to assign all origins and destinations to at least
one door and vice versa, the second phase of the heuristic constructs a final solution
through iteratively selecting and assigning origins or destinations to doors in order of
importance. This unique solution then is refined with a best-improving swap local search
method. The local optimum found serves as the final solution of the assignment problem.
61
Subsequently to the development of our LS-including heuristic, we investigated the
possibility of incorporating it into a more extensive Greedy Adaptive Randomized Search
Procedure, shortly GRASP. This heuristic-based GRASP method consists of two main steps
namely a construction phase and a local search method. The construction phase merely
exists of the same steps as in our developed heuristic but uses a more randomized technique
of selecting and assigning origins and destinations, resulting in several starting solutions
instead of just one. Besides the construction phase, the same best-improving swap local
search method was used and a final assignment was obtained.
After testing both algorithms extensively via simulation, the results showed that the LS-
including heuristic outperforms the heuristic-based GRASP for cross-docks with more than 70
doors: it yields a better final solution and requires less CPU time. For smaller problems, a
more optimal solution obtained by the heuristic-based GRASP should be weighed against a
less time-consuming suboptimal assignment, rendered by the LS-including heuristic.
9.2 Limitations and future research
As our study focused on the mid-term assignment of origins and destinations, it offers a lot
of opportunities for future research. First of all, it could be used as a basis for solving the
remaining short-term truck scheduling problem. With our approach, fixing the assignment of
origins and destinations to strip and stack doors for a longer period of time, the problem
that remains is how trucks coming from the same origin or going to the same destination
have to be sequenced, as mentioned in section 5.1. Secondly, this situation could be
compared to the one where both the assignment of origins and destinations to doors and
the sequencing of trucks is done simultaneously, in the short-term. Evaluating the
complexity of both situations would provide a serious step towards an increased knowledge
about an integrated approach of the dock door assignment problem and the truck
scheduling problem.
62
Concerning the performance of our approaches, additional simulations should be done.
Although the results indicate that our LS-including heuristic outperforms the heuristic-based
GRASP for randomly generated databases, it should be tested on actual freight data from
logistics companies. Real life case studies would not only offer a lot more opportunities for
performance evaluation but it could further provide valuable contributions for
improvement. E.g. our LS-including heuristic could be improved to fit situations with a mixed
assignment service mode, where the designation of inbound and outbound doors is not fixed
but depends on the freight data. Furthermore, it could also be expanded to be used in
situations with temporary storage or for the assignment problem in other shaped cross-
docks. Furthermore the LS-including heuristic could also be compared to other heuristics
such as a Genetic Algorithm, etc.
Finally, a lot more study should be conducted about the mid-term dock door assignment of
origins and destinations, as we strongly believe that a good solution to this specific problem
would be a big step forward towards an elevated distribution management.
V
Bibliography
Bartholdi, J. J., & Gue, K. R. (2000). Reducing labor costs in an LTL crossdocking terminal. Operations Research, 48(6), 823-832. doi: DOI 10.1287/opre.48.6.823.12397
Bartholdi, J. J., & Gue, K. R. (2004). The best shape for a crossdock. Transportation Science, 38(2), 235-244. doi: DOI 10.1287/trsc.1030.0077
Bermúdez, R., Cole, M. H., Center, M.-B. N. R. T. S., Research, U. S. D. o. T., Administration, S. P., & Program, U. T. C. (2001). A Genetic Algorithm Approach to Door Assignments in Breakbulk Terminals: University of Arkansas, Mack-Blackwell National Rural Transportation Study Center.
Boysen, N., & Fliedner, M. (2010). Cross dock scheduling: Classification, literature review and research agenda. Omega-International Journal of Management Science, 38(6), 413-422. doi: DOI 10.1016/j.omega.2009.10.008
Cohen, Y., & Keren, B. (2008). A simple heuristic for assigning doors to trailers in cross-docks. International Conference on Industrial Logistics (Icil 2008): Logistics in a Flat World: Strategy, Management and Operations, 1-14.
Cohen, Y., & Keren, B. (2009). Trailer to door assignment in a synchronous cross-dock operation. International Journal of Logistics Systems and Management, 5(5), 574-590. doi: 10.1504/IJLSM.2009.024253
Gue, K. R. (1999). The effects of trailer scheduling on the layout of freight terminals. Transportation Science, 33(4), 419-428. doi: DOI 10.1287/trsc.33.4.419
Guignard, M., Hahn, P. M., Pessoa, A. A., & da Silva, D. C. (2012). Algorithms for the Cross-dock Door Assignment Problem: Matheuristics.
Li, Y., Pardalos, P. M., & Resende, M. G. C. (1994). A Greedy Randomized Adaptive Search Procedure for the Quadratic Assignment Problem. Paper presented at the DIMACS Series in Discrete Mathematics and Theoretical Computer Science.
Liao, C. J., Lin, Y. M., & Shih, S. C. (2010). Vehicle routing with cross-docking in the supply chain. Expert Systems with Applications, 37(10), 6868-6873. doi: DOI 10.1016/j.eswa.2010.03.035
Material Handling Institute. Glossary, URL: <http://www.mhi.org/glossary?page=9&sort=tite-sort%20asc%2Ccompany-sort%20asc>.
Mauricio G. C. Resende, C. C. R. (2009). Greedy Randomized Adaptive Search Procedures. Encyclopedia of Optimization, 1460-1469.
Richardson, H. L. (1999). Cross Docking: Information Flow Saves Space. Transportation & Distribution, 40(11), 51.
Shuib, A., & Fatthi, W. N. A. W. A. (2012). A Review on Quantitative Approaches for Dock Door Assignment in Cross-Docking. International Journal on Advanced Science, Engineering and Information Technology, 2(5), 30-34.
Simchi-Levi, D., Simchi-Levi, E., & Kaminsky, P. (2008). Designing and managing the supply chain (3 ed.): McGraw-Hill United-States.
Sinja-Katharina Tiedemann, N. B. (2009). Design und Betrieb von Cross Docks. Jena Research Papers in Business and Economics - Working and Discussion Papers(03/2009).
Stalk, G., Evans, P., & Shulman, L. E. (1992). Competing on Capabilities - the New Rules of Corporate-Strategy. Harvard Business Review, 70(2), 57-69.
Supply Chain Counsil. What is "supply chain"?, URL: <http://supply-chain.org/node/69>.
VI
Toth, P., & Vigo, D. (2002). Models, relaxations and exact approaches for the capacitated vehicle routing problem. Discrete Applied Mathematics, 123(1-3), 487-512. doi: 10.1016/s0166-218x(01)00351-1
Tsui, L. Y., & Chang, C. H. (1990). A Microcomputer Based Decision Support Tool for Assigning Dock Doors in Freight Yards. Computers & Industrial Engineering, 19(1-4), 309-312. doi: Doi 10.1016/0360-8352(90)90128-9
Tsui, L. Y., & Chang, C. H. (1992). An Optimal Solution to a Dock Door Assignment Problem. Computers & Industrial Engineering, 23(1-4), 283-286. doi: Doi 10.1016/0360-8352(92)90117-3
Van Belle, J., Valckenaers, P., & Cattrysse, D. (2012). Cross-docking: State of the art. Omega-International Journal of Management Science, 40(6), 827-846. doi: DOI 10.1016/j.omega.2012.01.005
Vis, I. F. A., & Roodbergen, K. J. (2008). Positioning of goods in a cross-docking environment. Computers & Industrial Engineering, 54(3), 677-689. doi: DOI 10.1016/j.cie.2007.10.004
Vis, I. F. A., & Roodbergen, K. J. (2011). Layout and control policies for cross docking operations. Computers & Industrial Engineering, 61(4), 911-919. doi: DOI 10.1016/j.cie.2011.06.001
Waters, D. (2010). Global logistics: New directions in supply chain management: Kogan Page. Yu, V. F., Sharma, D., & Murty, K. G. (2008). Door allocations to origins and destinations at
less-than-truckload trucking terminals. Journal of Industrial and Systems Engineering, 2(1), 1-15.
Zhu, Y.-R., Hahn, P. M., Liu, Y., & Guignard, M. (2009). New approach for the cross-dock door assignment problem. Paper presented at the Pesquisa Operacional na Gestão do Conhecimento, Bahia, Brazil.
i
Appendix
Appendix 1.1
Truck Database Truck Nr. From O To D1 To D2 To D3 To D4 To D5 To D6 To D7 To D8 TOTAL
1 7 105 8 174 9 4 0 0 0 300 2 2 157 5 22 2 5 1 13 95 300 3 2 2 0 2 112 0 178 5 1 300 4 7 0 0 0 23 55 76 124 22 300 5 8 0 18 21 0 260 0 1 0 300
6 7 8 1 0 12 0 98 180 1 300 7 8 6 156 1 0 13 0 124 0 300 8 5 0 1 3 6 261 0 29 0 300 9 7 7 57 17 3 66 2 8 140 300
10 8 13 115 0 1 12 4 147 8 300
11 4 36 1 3 1 0 259 0 0 300 12 9 0 5 0 64 54 71 67 39 300 13 4 13 4 12 20 9 31 84 127 300 14 9 0 0 0 0 2 135 0 163 300 15 2 0 4 0 8 6 40 1 241 300 16 4 0 0 0 156 5 14 0 125 300 17 7 21 2 39 0 2 230 5 1 300
18 7 0 0 174 14 1 32 79 0 300 19 8 4 2 244 0 13 4 25 8 300 20 1 0 0 23 13 1 141 122 0 300 21 9 3 43 61 4 24 12 58 95 300 22 6 0 34 0 239 0 2 0 25 300 23 8 243 4 1 37 2 8 2 3 300 24 9 0 1 49 243 7 0 0 0 300 25 5 21 198 22 1 1 1 0 56 300 26 2 0 1 284 8 0 0 1 6 300 27 5 52 6 152 76 2 2 1 9 300 28 5 79 4 1 0 14 0 193 9 300
29 1 2 6 15 258 0 7 12 0 300 30 6 51 2 4 27 38 19 154 5 300 31 7 154 19 0 1 9 4 113 0 300 32 6 7 78 21 4 5 70 106 9 300 33 6 4 32 128 28 2 90 5 11 300 34 6 0 4 0 0 15 1 8 272 300 35 5 4 198 1 0 96 0 1 0 300 36 3 4 30 198 0 68 0 0 0 300 37 2 0 0 284 0 0 0 0 16 300 38 5 0 277 0 13 0 10 0 0 300
ii
39 4 2 4 2 28 160 87 5 12 300
40 1 0 16 3 23 0 0 257 1 300 41 2 0 63 0 0 1 5 228 3 300 42 8 244 9 0 7 1 30 4 5 300 43 5 9 3 0 37 0 0 0 251 300 44 4 1 7 0 157 0 2 133 0 300 45 9 94 0 8 12 7 111 61 7 300 46 7 0 0 2 2 0 0 196 100 300 47 3 9 23 17 18 2 81 9 141 300 48 1 1 3 99 0 0 0 37 160 300 49 4 112 8 75 22 7 63 12 1 300 50 1 0 270 28 0 1 0 0 1 300
51 1 7 1 3 147 1 7 4 130 300 52 7 101 0 30 1 0 0 1 167 300 53 2 156 0 0 1 23 0 110 10 300 54 2 18 0 2 122 0 2 0 156 300 55 3 15 4 17 14 0 58 2 190 300 56 8 6 0 0 214 0 74 4 2 300 57 8 44 0 0 0 30 0 61 165 300 58 5 54 28 10 0 7 15 10 176 300 59 5 0 0 6 2 290 0 0 2 300 60 5 12 78 175 11 0 21 1 2 300 61 1 1 80 6 192 0 8 12 1 300 62 4 144 5 70 23 49 5 0 4 300
63 3 0 48 2 22 29 32 167 0 300 64 5 0 78 187 15 5 3 10 2 300 65 9 3 0 1 3 19 61 10 203 300 66 2 0 0 7 27 0 0 266 0 300 67 7 71 0 18 83 1 0 50 77 300 68 3 1 256 1 12 8 5 16 1 300 69 5 0 0 0 0 18 282 0 0 300 70 3 27 4 5 11 1 18 234 0 300 71 2 8 0 4 0 1 278 3 6 300 72 4 3 0 2 207 10 11 1 66 300 73 7 2 1 0 0 3 32 239 23 300
74 1 0 1 0 0 0 0 277 22 300 75 1 0 13 0 4 23 73 187 0 300 76 3 0 30 0 0 26 244 0 0 300 77 5 33 196 0 1 52 12 3 3 300 78 4 0 192 70 11 0 1 9 17 300 79 2 263 0 1 0 2 0 0 34 300 80 6 5 1 1 53 0 24 0 216 300 81 9 0 0 0 0 14 255 0 31 300 82 6 63 120 0 0 0 1 58 58 300 83 9 56 37 0 2 158 0 21 26 300 84 2 0 38 72 2 0 188 0 0 300
iii
85 9 0 17 120 1 3 0 158 1 300
86 9 0 4 30 1 0 22 242 1 300 87 5 145 0 12 0 1 0 141 1 300 88 5 8 0 3 14 4 39 216 16 300 89 2 0 0 63 0 151 86 0 0 300 90 8 4 1 185 2 6 41 13 48 300 91 9 13 0 2 12 191 14 14 54 300 92 7 37 3 27 136 0 0 52 45 300 93 8 0 9 2 1 0 287 0 1 300 94 6 2 35 10 153 0 5 3 92 300 95 9 228 0 15 13 2 2 40 0 300 96 8 275 0 4 1 1 8 11 0 300
97 1 31 4 20 29 14 5 136 61 300 98 8 0 29 253 17 1 0 0 0 300 99 2 37 191 0 2 2 53 0 15 300
100 8 179 66 0 33 4 17 1 0 300
TOTAL
3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Initial flow table
O\D 1 2 3 4 5 6 7 8 TOTAL
1 42 394 197 666 40 241 1044 376 3,000
2 641 302 741 284 191 831 627 583 4,200
3 56 395 240 77 134 438 428 332 2,100
4 311 221 234 625 240 473 244 352 2,700
5 417 1067 572 176 751 385 605 527 4,500
6 132 306 164 504 60 212 334 688 2,400
7 506 91 481 284 141 474 1047 576 3,600
8 1018 409 711 313 343 473 393 240 3,900
9 397 107 286 355 481 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
iv
CALCULATIONS
Initialization
Multiple doors needed for:
Origins: 2, 5,
Destinations: 6, 7, 8,
Cross-dock
IN OUT
0 0
0 0
0 0
0 0
5 2
0 0
0 0
0 0
0 0
0 0
Updated flow table O\D 1 cluster 3 4 5 6 7 8 TOTAL 1 42 394 197 666 40 241 1044 376 3,000 2 641 302 741 284 191 831 627 583 4,200 3 56 395 240 77 134 438 428 332 2,100 4 311 221 234 625 240 473 244 352 2,700 cluster 417 0 572 176 751 385 605 527 4,500 6 132 306 164 504 60 212 334 688 2,400 7 506 91 481 284 141 474 1047 576 3,600 8 1018 409 711 313 343 473 393 240 3,900 9 397 107 286 355 481 683 671 620 3,600 TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
v
Iteration 1
Updated flow table
O\D 1 cluster 3 4 5 6 7 8 TOTAL
1 42 394 197 666 40 241 1044 376 3,000
2 641 302 741 284 191 831 627 583 4,200
3 56 395 240 77 134 438 428 332 2,100
4 311 221 234 625 240 473 244 352 2,700
cluster 417 0 572 176 751 385 605 527 4,500
6 132 306 164 504 60 212 334 688 2,400
7 506 91 481 284 141 474 1047 576 3,600
8 1018 409 711 313 343 473 393 240 3,900
9 397 107 286 355 481 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Add origin 0 and destination 5
Cross-dock
IN OUT
0 0
0 0
0 0
0 0
5 2
0 5
0 0
0 0
0 0
0 0
Total Distance 2,569
Updated flow table
O\D 1 cluster 3 4 5 6 7 8 TOTAL
1 42 434 197 666 0 241 1044 376 3,000
2 641 493 741 284 0 831 627 583 4,200
3 56 529 240 77 0 438 428 332 2,100
4 311 461 234 625 0 473 244 352 2,700
cluster 417 0 572 176 0 385 605 527 4,500
6 132 366 164 504 0 212 334 688 2,400
7 506 232 481 284 0 474 1047 576 3,600
8 1018 752 711 313 0 473 393 240 3,900
9 397 588 286 355 0 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
vi
Iteration 2
Updated flow table
O\D 1 cluster 3 4 5 6 7 8 TOTAL
1 42 434 197 666 0 241 1044 376 3,000
2 641 493 741 284 0 831 627 583 4,200
3 56 529 240 77 0 438 428 332 2,100
4 311 461 234 625 0 473 244 352 2,700
cluster 417 0 572 176 0 385 605 527 4,500
6 132 366 164 504 0 212 334 688 2,400
7 506 232 481 284 0 474 1047 576 3,600
8 1018 752 711 313 0 473 393 240 3,900
9 397 588 286 355 0 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Add origin 8 and destination 0
Cross-dock
IN OUT
0 0
0 0
0 0
0 0
5 2
8 5
0 0
0 0
0 0
0 0
Total Distance 3,730
Updated flow table
O\D 1 cluster 3 4 5 6 7 8 TOTAL
1 42 434 197 666 0 241 1044 376 3,000
2 641 493 741 284 0 831 627 583 4,200
3 56 529 240 77 0 438 428 332 2,100
4 311 461 234 625 0 473 244 352 2,700
cluster 1435 0 1283 489 0 858 998 767 4,500
6 132 366 164 504 0 212 334 688 2,400
7 506 232 481 284 0 474 1047 576 3,600
8 0 0 0 0 0 0 0 0 3,900
9 397 588 286 355 0 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
vii
Iteration 3
Updated flow table
O\D 1 cluster 3 4 5 6 7 8 TOTAL
1 42 434 197 666 0 241 1044 376 3,000
2 641 493 741 284 0 831 627 583 4,200
3 56 529 240 77 0 438 428 332 2,100
4 311 461 234 625 0 473 244 352 2,700
cluster 1435 0 1283 489 0 858 998 767 4,500
6 132 366 164 504 0 212 334 688 2,400
7 506 232 481 284 0 474 1047 576 3,600
8 0 0 0 0 0 0 0 0 3,900
9 397 588 286 355 0 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Add origin 0 and destination 1
Cross-dock
IN OUT
0 0
0 0
0 0
0 0
5 2
8 5
0 1
0 0
0 0
0 0
Total Distance 7,017
Updated flow table
O\D 1 cluster 3 4 5 6 7 8 TOTAL
1 0 476 197 666 0 241 1044 376 3,000
2 0 1134 741 284 0 831 627 583 4,200
3 0 585 240 77 0 438 428 332 2,100
4 0 772 234 625 0 473 244 352 2,700
cluster 0 0 1283 489 0 858 998 767 4,500
6 0 498 164 504 0 212 334 688 2,400
7 0 738 481 284 0 474 1047 576 3,600
8 0 0 0 0 0 0 0 0 3,900
9 0 985 286 355 0 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
viii
After 19 iterations, all origins and destinations have been assigned, accept second doors for
origin 2 and destination 6. The final cross-dock and total distance are given below.
Cross-dock
IN OUT
6 7
4 4
1 8
7 7
9 6
2 3
5 2
8 5
3 1
5 8
Total Distance 178,178
LOCAL SEARCH
Distance: 178178
Cross-dock
IN OUT
6 7
4 4
1 8
7 7
9 6
2 3
5 2
8 5
3 1
5 8
1: Destination 8 and destination 2 were swapped.
Distance: 172,962
2: Destination 8 and destination 7 were swapped.
Distance: 168,976
3: Destination 1 and destination 5 were swapped.
Distance: 167,347
4: Destination 8 and destination 3 were swapped.
Distance: 165,786
5: Origin 5 and origin 3 were swapped.
Distance: 164,358
6: Destination 4 and destination 8 were swapped.
Distance: 163,365
7: Destination 8 and destination 6 were swapped.
Distance: 162,533
8: Destination 2 and destination 5 were swapped.
Distance: 161,828
ix
9: Destination 8 and destination 7 were swapped.
Distance: 161,240
10: Origin 4 and origin 6 were swapped.
Distance: 160,872
11: No improvement found.
Distance: 160,872
Cross-dock
IN OUT
4 4
6 8
1 8
7 7
9 7 Distance: 160,872
2 6
5 3
8 1
5 2
3 5
UNASSIGNMENTS
Door flows
IN OUT
2,700 3,284
2,400 128
3,000 4,166
3,600 1,227 Origin 2 is still unassigned
3,600 4,166 Destination 6 is still unassigned
4,166 4,166
4,166 3,626
3,900 3,520
334 3,292
2,100 2,381
x
Cross dock
IN OUT
4 4
6 8
1 8
7 7
9, 2 7
2 6
5 3, 6
8 1
5 2
3 5
Door Capacity: 4166
Door flows
IN OUT
2,700 3,284
2,400 128
3,000 4,166
3,600 1,227
3,634 4,166
4,166 4,166
4,166 3,670
3,900 3,520
334 3,292
2,100 2,381
xi
PSEUDO CODE procedure Heuristic
Initialization();
while cross-dock is not full && origins or destinations left to
assign do
Solution = Iteration();
end;
SolutionFinal = LocalSearch(Solution);
return SolutionFinal;
end Heuristic.
procedure Initialization()
Look for biggest flow;
Assign O and D to cross-dock at middle door;
if(flow>door_capacity)
{
flow_remaining = flow - door_capacity;
}
else
{
flow_remaining = 0;
}
end Initialization.
procedure Iteration()
Calculate flow_remaining for each pair O/D;
Display flow_remaining in flow_table;
Check cluster_row for biggest_flow_row;
Check cluster_column for biggest_flow_column;
if(biggest_flow_row >= biggest_flow_column)
{
Assign corresponding destination to best position in cross-
dock;
if(biggest_flow_row > door_capacity)
{
flow_remaining = flow - door_capacity;
Add door_capacity to cluster_column;
}
else
{
flow_remaining = 0;
Add destination flows to cluster_column;
}
}
xii
else
{
Assign corresponding origin to best position in cross-dock;
if(biggest_flow_column > door_capacity)
{
flow_remaining = flow - door_capacity;
Add door_capacity to cluster_row;
}
else
{
flow_remaining = 0;
Add originflows to cluster_row;
}
}
end Iteration.
procedure LocalSearch(Solution)
while Solution is not local optimum do
Simulate all possible swaps and keep distance_result;
Solution = perform best swap;
end;
return Solution;
end LocalSearch.
xiii
Appendix 1.2
Truck Database Truck Nr. From O To D1 To D2 To D3 To D4 To D5 To D6 To D7 To D8 TOTAL
1 7 105 8 174 9 4 0 0 0 300 2 2 157 5 22 2 5 1 13 95 300 3 2 2 0 2 112 0 178 5 1 300 4 7 0 0 0 23 55 76 124 22 300 5 8 0 18 21 0 260 0 1 0 300 6 7 8 1 0 12 0 98 180 1 300 7 8 6 156 1 0 13 0 124 0 300 8 5 0 1 3 6 261 0 29 0 300
9 7 7 57 17 3 66 2 8 140 300 10 8 13 115 0 1 12 4 147 8 300 11 4 36 1 3 1 0 259 0 0 300 12 9 0 5 0 64 54 71 67 39 300 13 4 13 4 12 20 9 31 84 127 300
14 9 0 0 0 0 2 135 0 163 300 15 2 0 4 0 8 6 40 1 241 300 16 4 0 0 0 156 5 14 0 125 300 17 7 21 2 39 0 2 230 5 1 300 18 7 0 0 174 14 1 32 79 0 300 19 8 4 2 244 0 13 4 25 8 300
20 1 0 0 23 13 1 141 122 0 300 21 9 3 43 61 4 24 12 58 95 300 22 6 0 34 0 239 0 2 0 25 300 23 8 243 4 1 37 2 8 2 3 300 24 9 0 1 49 243 7 0 0 0 300 25 5 21 198 22 1 1 1 0 56 300 26 2 0 1 284 8 0 0 1 6 300 27 5 52 6 152 76 2 2 1 9 300 28 5 79 4 1 0 14 0 193 9 300 29 1 2 6 15 258 0 7 12 0 300 30 6 51 2 4 27 38 19 154 5 300 31 7 154 19 0 1 9 4 113 0 300
32 6 7 78 21 4 5 70 106 9 300 33 6 4 32 128 28 2 90 5 11 300 34 6 0 4 0 0 15 1 8 272 300 35 5 4 198 1 0 96 0 1 0 300 36 3 4 30 198 0 68 0 0 0 300 37 2 0 0 284 0 0 0 0 16 300 38 5 0 277 0 13 0 10 0 0 300 39 4 2 4 2 28 160 87 5 12 300 40 1 0 16 3 23 0 0 257 1 300 41 2 0 63 0 0 1 5 228 3 300
xiv
42 8 244 9 0 7 1 30 4 5 300
43 5 9 3 0 37 0 0 0 251 300 44 4 1 7 0 157 0 2 133 0 300 45 9 94 0 8 12 7 111 61 7 300 46 7 0 0 2 2 0 0 196 100 300 47 3 9 23 17 18 2 81 9 141 300 48 1 1 3 99 0 0 0 37 160 300 49 4 112 8 75 22 7 63 12 1 300 50 1 0 270 28 0 1 0 0 1 300 51 1 7 1 3 147 1 7 4 130 300 52 7 101 0 30 1 0 0 1 167 300 53 2 156 0 0 1 23 0 110 10 300
54 2 18 0 2 122 0 2 0 156 300 55 3 15 4 17 14 0 58 2 190 300 56 8 6 0 0 214 0 74 4 2 300 57 8 44 0 0 0 30 0 61 165 300 58 5 54 28 10 0 7 15 10 176 300 59 5 0 0 6 2 290 0 0 2 300 60 5 12 78 175 11 0 21 1 2 300 61 1 1 80 6 192 0 8 12 1 300 62 4 144 5 70 23 49 5 0 4 300 63 3 0 48 2 22 29 32 167 0 300 64 5 0 78 187 15 5 3 10 2 300 65 9 3 0 1 3 19 61 10 203 300
66 2 0 0 7 27 0 0 266 0 300 67 7 71 0 18 83 1 0 50 77 300 68 3 1 256 1 12 8 5 16 1 300 69 5 0 0 0 0 18 282 0 0 300 70 3 27 4 5 11 1 18 234 0 300 71 2 8 0 4 0 1 278 3 6 300 72 4 3 0 2 207 10 11 1 66 300 73 7 2 1 0 0 3 32 239 23 300 74 1 0 1 0 0 0 0 277 22 300 75 1 0 13 0 4 23 73 187 0 300 76 3 0 30 0 0 26 244 0 0 300
77 5 33 196 0 1 52 12 3 3 300 78 4 0 192 70 11 0 1 9 17 300 79 2 263 0 1 0 2 0 0 34 300 80 6 5 1 1 53 0 24 0 216 300 81 9 0 0 0 0 14 255 0 31 300 82 6 63 120 0 0 0 1 58 58 300 83 9 56 37 0 2 158 0 21 26 300 84 2 0 38 72 2 0 188 0 0 300 85 9 0 17 120 1 3 0 158 1 300 86 9 0 4 30 1 0 22 242 1 300 87 5 145 0 12 0 1 0 141 1 300
xv
88 5 8 0 3 14 4 39 216 16 300
89 2 0 0 63 0 151 86 0 0 300 90 8 4 1 185 2 6 41 13 48 300 91 9 13 0 2 12 191 14 14 54 300 92 7 37 3 27 136 0 0 52 45 300 93 8 0 9 2 1 0 287 0 1 300 94 6 2 35 10 153 0 5 3 92 300 95 9 228 0 15 13 2 2 40 0 300 96 8 275 0 4 1 1 8 11 0 300 97 1 31 4 20 29 14 5 136 61 300 98 8 0 29 253 17 1 0 0 0 300 99 2 37 191 0 2 2 53 0 15 300
100 8 179 66 0 33 4 17 1 0 300
TOTAL
3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Initial flow table
O\D 1 2 3 4 5 6 7 8 TOTAL
1 42 394 197 666 40 241 1044 376 3,000
2 641 302 741 284 191 831 627 583 4,200
3 56 395 240 77 134 438 428 332 2,100
4 311 221 234 625 240 473 244 352 2,700
5 417 1067 572 176 751 385 605 527 4,500
6 132 306 164 504 60 212 334 688 2,400
7 506 91 481 284 141 474 1047 576 3,600
8 1018 409 711 313 343 473 393 240 3,900
9 397 107 286 355 481 683 671 620 3,600
TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
xvi
CALCULATIONS
Initialization
Multiple doors needed for:
Origins: 2, 5,
Destinations: 6, 7, 8,
Cross-dock
IN OUT
0 0
0 0
0 0
0 0
7 7
0 0
0 0
0 0
0 0
0 0
Updated flow table O\D 1 2 3 4 5 6 cluster 8 TOTAL 1 42 394 197 666 40 241 1044 376 3,000 2 641 302 741 284 191 831 627 583 4,200 3 56 395 240 77 134 438 428 332 2,100 4 311 221 234 625 240 473 244 352 2,700 5 417 1067 572 176 751 385 605 527 4,500 6 132 306 164 504 60 212 334 688 2,400 cluster 506 91 481 284 141 474 0 576 3,600 8 1018 409 711 313 343 473 393 240 3,900 9 397 107 286 355 481 683 671 620 3,600 TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
xvii
Iteration 1
Updated flow table O\D 1 2 3 4 5 6 cluster 8 TOTAL 1 42 394 197 666 40 241 1044 376 3,000 2 641 302 741 284 191 831 627 583 4,200 3 56 395 240 77 134 438 428 332 2,100 4 311 221 234 625 240 473 244 352 2,700 5 417 1067 572 176 751 385 605 527 4,500 6 132 306 164 504 60 212 334 688 2,400 cluster 506 91 481 284 141 474 0 576 3,600 8 1018 409 711 313 343 473 393 240 3,900 9 397 107 286 355 481 683 671 620 3,600 TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Add origin 1 and destination 0
Cross-dock
IN OUT
0 0
0 0
0 0
0 0
7 7
1 0
0 0
0 0
0 0
0 0
Total Distance 3,135
Updated flow table O\D 1 2 3 4 5 6 cluster 8 TOTAL 1 0 0 0 0 0 0 0 0 3,000 2 641 302 741 284 191 831 627 583 4,200 3 56 395 240 77 134 438 428 332 2,100 4 311 221 234 625 240 473 244 352 2,700 5 417 1067 572 176 751 385 605 527 4,500 6 132 306 164 504 60 212 334 688 2,400 cluster 548 485 678 950 181 715 0 952 3,600 8 1018 409 711 313 343 473 393 240 3,900 9 397 107 286 355 481 683 671 620 3,600 TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
xviii
Iteration 2
Updated flow table O\D 1 2 3 4 5 6 cluster 8 TOTAL 1 0 0 0 0 0 0 0 0 3,000 2 641 302 741 284 191 831 627 583 4,200 3 56 395 240 77 134 438 428 332 2,100 4 311 221 234 625 240 473 244 352 2,700 5 417 1067 572 176 751 385 605 527 4,500 6 132 306 164 504 60 212 334 688 2,400 cluster 548 485 678 950 181 715 0 952 3,600 8 1018 409 711 313 343 473 393 240 3,900 9 397 107 286 355 481 683 671 620 3,600 TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Add origin 0 and destination 4
Cross-dock
IN OUT
0 0
0 0
0 0
0 0
7 7
1 4
0 0
0 0
0 0
0 0
Total Distance 4,369
Updated flow table O\D 1 2 3 4 5 6 cluster 8 TOTAL 1 0 0 0 0 0 0 0 0 3,000 2 641 302 741 0 191 831 911 583 4,200 3 56 395 240 0 134 438 505 332 2,100 4 311 221 234 0 240 473 869 352 2,700 5 417 1067 572 0 751 385 781 527 4,500 6 132 306 164 0 60 212 838 688 2,400 cluster 548 485 678 0 181 715 0 952 3,600 8 1018 409 711 0 343 473 706 240 3,900 9 397 107 286 0 481 683 1026 620 3,600 TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
xix
Iteration 3
Updated flow table O\D 1 2 3 4 5 6 cluster 8 TOTAL 1 0 0 0 0 0 0 0 0 3,000 2 641 302 741 0 191 831 911 583 4,200 3 56 395 240 0 134 438 505 332 2,100 4 311 221 234 0 240 473 869 352 2,700 5 417 1067 572 0 751 385 781 527 4,500 6 132 306 164 0 60 212 838 688 2,400 cluster 548 485 678 0 181 715 0 952 3,600 8 1018 409 711 0 343 473 706 240 3,900 9 397 107 286 0 481 683 1026 620 3,600 TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
Add origin 9 and destination 0
Cross-dock
IN OUT
0 0
0 0
0 0
9 0
7 7
1 4
0 0
0 0
0 0
0 0
Total Distance 6,776
Updated flow table O\D 1 2 3 4 5 6 cluster 8 TOTAL 1 0 0 0 0 0 0 0 0 3,000 2 641 302 741 0 191 831 911 583 4,200 3 56 395 240 0 134 438 505 332 2,100 4 311 221 234 0 240 473 869 352 2,700 5 417 1067 572 0 751 385 781 527 4,500 6 132 306 164 0 60 212 838 688 2,400 cluster 945 592 964 0 662 1398 0 1572 3,600 8 1018 409 711 0 343 473 706 240 3,900 9 0 0 0 0 0 0 0 0 3,600 TOTAL 3,520 3,292 3,626 3,284 2,381 4,210 5,393 4,294
xx
After 19 iterations the following solution was obtained.
Cross-dock 1
IN OUT
5 6
8 6
6 1
2 8
9 3
7 7
1 4
5 5
4 2
3 7
Total Distance 188,556
The same procedure is executed 9 more times to obtain a total of 10 starting solutions.
LOCAL SEARCH
Now local search is performed on these starting solutions and afterwards the best solution
serves as the final solution. The local search for the first starting solution is given below.
Total Distance: 188556
Cross-dock 1 IN OUT 5 6 8 6 6 1 2 8 9 3 7 7 1 4 5 5 4 2 3 7
1: Origin 4 and origin 5 were swapped.
Distance: 176,450 2: Destination 7 and destination 5 were swapped.
Distance: 171,602
3: Destination 4 and destination 6 were swapped.
Distance: 167,206
xxi
4: Origin 6 and origin 8 were swapped.
Distance: 165,526 5: Destination 6 and destination 8 were swapped.
Distance: 164,044
6: Destination 7 and destination 8 were swapped.
Distance: 163,371 7: Destination 8 and destination 3 were swapped.
Distance: 162,420
8: Origin 6 and origin 4 were swapped.
Distance: 162,191 9: Destination 1 and destination 6 were swapped.
Distance: 162,017
10: No improvement found.
Distance: 162,017
Cross-dock 1 IN OUT 6 4 4 1 8 6 2 6 9 8 7 7 1 7 5 3 5 2 3 5 ---------------------------------------------------------------------
Cross-dock 2 IN OUT 6 4 4 8 9 6 1 7 7 7 Distance: 161,740
2 6 5 3 5 2 8 1 3 5
---------------------------------------------------------------------
xxii
Cross-dock 3 IN OUT 3 5 5 2 8 1 4 3 2 6 Distance: 161,664
2 8 9 7 7 7 1 8 6 4
---------------------------------------------------------------------
Cross-dock 4 IN OUT 3 3 8 1 2 6 2 6 7 7 Distance: 163,081
9 7 1 8 5 2 4 4 6 5
---------------------------------------------------------------------
Cross-dock 5 IN OUT 8 1 4 3 2 6 2 6 9 5 Distance: 165,281
7 7 5 7 1 8 3 2 6 4
xxiii
Cross-dock 6 IN OUT 4 4 6 8 1 8 7 7 9 7 Distance: 160,872
2 6 5 3 8 1 5 2 3 5
---------------------------------------------------------------------
Cross-dock 7
IN OUT 3 5 6 8 5 2 5 8 1 7 Distance: 164,984
7 7 9 6 2 3 4 4 8 1
---------------------------------------------------------------------
Cross-dock 8 IN OUT 5 5 5 2 8 1 2 3 2 6 Distance: 170,085
9 7 7 7 1 8 6 8 4 4
xxiv
Cross-dock 9 IN OUT 3 1 8 1 5 2 5 3 2 6 Distance: 165,205
7 7 9 7 1 8 6 8 4 4
---------------------------------------------------------------------
Cross-dock 10
IN OUT 3 5 5 2 6 8 4 4 9 6 Distance: 166,575
2 6 1 7 7 7 2 3 8 1
FINAL CROSS-DOCK
Cross-dock 6 IN OUT 4 4 6 8 1 8 7 7 9 7 Distance: 160,872
2 6 5 3 8 1 5 2 3 5
Origin 2 and destination 6 are still unassigned
xxv
UNASSIGNMENTS
Door flows IN OUT 2,700 3,284 2,400 128 3,000 4,166 3,600 1,227 3,600 4,166 4,166 4,166 4,166 3,626 3,900 3,520 334 3,292 2,100 2,381
Cross-dock 6 IN OUT 4 4 6 8 1 8 7 7 9, 2 7 2 6 5 3, 6 8 1 5 2 3 5
Door Capacity: 4166
Door flows IN OUT 2,700 3,284 2,400 128 3,000 4,166 3,600 1,227 3,634 4,166 4,166 4,166 4,166 3,670 3,900 3,520 334 3,292 2,100 2,381
xxvi
PSEUDO CODE
procedure GRASP(startingSolutions)
for(int iteration=1; iteration<=startingSolutions; iteration++)
{
Initialization();
while cross-dock is not full && there are origins/destinations
left to assign do
Solution = Iteration();
end;
Solution[iteration] = LocalSearch(Solution);
}
for(int iteration=1; iteration<=startingSolutions; iteration++)
{
SolutionFinal = best Solution[iteration];
}
return SolutionFinal;
end GRASP.
procedure Initialization()
RCL = Look for 20% biggest flows;
Choose random pair O/D from RCL;
Assign O and D to cross-dock at middle door;
if(flow>door_capacity)
{
flow_remaining = flow - door_capacity;
}
else
{
flow_remaining = 0;
}
Update flow_table;
end Initialization.
procedure Iteration()
Calculate flow_remaining for each pair O/D;
Display flow_remaining in flow_table;
RCL = check cluster_row and cluster_column for 20% biggest flows;
Choose random pair O/D from RCL;
if(nextToAssign is D)
{
Assign corresponding destination to best position in cross-
dock;
if(biggest_flow_row > door_capacity)
xxvii
{
flow_remaining = flow - door_capacity;
Add door_capacity to cluster_column;
}
else
{
flow_remaining = 0;
Add destination flows to cluster_column;
}
}
else
{
Assign corresponding origin to best position in cross-dock;
if(biggest_flow_column > door_capacity)
{
flow_remaining = flow - door_capacity;
Add door_capacity to cluster_row;
}
else
{
flow_remaining = 0;
Add origin flows to cluster_row;
}
}
end Iteration.
procedure LocalSearch(Solution)
while Solution is not local optimum do
Simulate all possible swaps and keep distance result;
Solution = perform best swap;
end;
return Solution;
end LocalSearch.