Computers & Operations Research 37 (2010) 32 -- 41
Contents lists available at ScienceDirect
Comput Computers ers & Operat Operation ionss Resear Research ch jo ur na l ho me pa ge: w w w . e l s e v i e r . c o m / l o c a t e / c o r
Truck Truck schedu schedulin ling g at zero-i zero-inve nvento ntory ry cross cross dockin docking g termin terminals als Nils Boysen ¨ Jena, Lehrstuhl f ur ¨ Allgemeine Betriebswirtschaftslehre/Operations Management, Carl-Zeiß-Straße 3, D-07743 Jena, Germany Friedrich-Schiller-Universit at
A R T I C L E
I N F O
Available online 26 March 2009 Keywords: Logistics Food industry Cross docking Truck scheduling Dynamic programming
A B S T R A C T
Handling freight at cross docking terminals constitutes a complex planning task which comprises several executive steps as shipments delivered by inbound trucks are to be unloaded, sorted according to their designated destinations, moved across the dock and finally loaded onto outbound trucks for an immediate delivery delivery elsewhere elsewhere in the distribu distribution tion system. system. To enable enable an efficient efficient synchronizat synchronization ion of inbound inbound and outbound flows, a careful planning of operations, e.g. by computerized scheduling procedures, becomes indispensable. This work treats a special truck scheduling problem arising in the (zero-inventory) cross docks of the food industry, where strict cooling requirements forbid an intermediate storage inside the terminal, so that all products are to be instantaneously loaded onto refrigerated outbound trucks. The problem is formalized such that different operational objectives, i.e. the flow time, processing time and tardiness of outbound trucks, are minimized. To solve the resulting truck scheduling problem suited exact and heuristic solution procedures are presented. © 2009 Elsevier Ltd. All rights reserved.
1. Introduction
A cross docking terminal is a distribution center exclusively dedicated to the transshipment of truck loads. In comparison to traditional warehouses, a cross dock carries no or at least a considerably reduced amount of stock. Whenever an incoming truck arrives at the yard of a cross dock, it is assigned to a dock door, where inbound loads are unloaded and scanned to determine their intended destinations. Then, loads are moved across the dock and loaded onto outbound bound trucks trucks for an immedi immediate ate delive delivery ry elsewh elsewhere ere in the distri distribut bution ion system. This requires a synchronization of inbound and outbound loads, so that transport times and temporary inventory at the dock are kept as low as possible. In addition to that, cross docking allows a consolidation of differently sized shipments with the same destination to full truck loads, so that economies in transportation costs can be realized [2] realized [2].. These advantages make cross docking an important logistics strategy receiving increased attention in today's globalized competition with its ever increasing volume of transported goods. Success stories on cross docking which resulted to considerable competitive advantages are reported for several industries with high proportions of distribution costs like retail chains (Wal Mart; [22]), [22] ), mailing companies (UPS; [12] (UPS; [12])), automobile producers (Toyota; [25])) and less-than-truckload logistics providers [13] [25] providers [13]..
E-mail address: nils.boysen@
[email protected] uni-jena.de..
0305-0548/$0305-0548/$- see front matter © 2009 Elsevier Ltd. All rights reserved. doi:10.1016/j.cor.2009.03.010
A schematic representation of the material handling operations carried out at cross docking terminals is depicted in Fig. 1. 1. Incoming trucks which arrive at the yard of the cross dock are either directly assigned to a receiving door or have to wait in a queue on the yard until assignment. Once docked, goods, i.e. pallets, packages or boxes, of the inbound trailer are unloaded and scanned to identify their respective destinations. Then, goods are taken over by some material handling device, such as a worker operating a fork lift, e.g. in retail industries [13] industries [13],, or some kind of conveyor belt system, e.g. in mail distribution centers [18] centers [18].. The goods are hence forwarded to the designated shipping door, where they are loaded onto an outbound truck, which serves the dedicated destination. Once an outbound (inbound) truck is completely loaded (unloaded) the trailer is removed removed from the dock, replaced replaced by another another trailer and the course of action repeats. The paper on hand deals with the truck scheduling problem, which generally comprises the assignment of trucks to dock doors and the determination of an overall docking schedule for all trucks and doors. Thus, the respective dispatcher needs to take two interrelated decisions: where and when trucks should be processed at the terminal. The specific constraints for this scheduling task vary considerably between different branches of industries: In the distribution networks of retail chains there exist cross docks (or separated parts of larger terminals) especially dedicated to frozen foods and dairy products, which typically require special arrangements as it is to be made made sure sure thatthe thatthe cool coolin ing g chai chain n is not not brok broken en.. Such Such cros crosss dock dockss do not differ from any other cross dock (except for the size, which is
N. Boysen / Computers & Operations Research 37 (2010) 32 -- 41
Fig. 1. Material handling in cross docking terminals.
comparatively small to reduce transportation times of frozen goods inside the uncooled terminal), but require a special kind of transshipment policy: Perishable goods are not allowed to be intermediately stored inside the terminal. Once a frozen good is unloaded from its refrigerated inbound trailer it must be directly moved and loaded onto its designated refrigerated outbound trailer. Otherwise a defrost and decay of comestible goods threatens. This structural property distinguishes the resulting truck scheduling problem from existing research on this topic provided by McWilliams et al. [18], Yu and Egbelu [26], Boysen et al. [7] and Miao et al. [19], who all consider different intermediate storage settings. The paper on hand formalizes the novel truck scheduling problem in these zero-inventory cross docks to enable a synchronized flow of goods across the dock. For this purpose, three different operational objectives are considered: minimization of flow time, processing time and tardiness. Although our study is inspired by a single real-world case at a major German retail chain, the underlying problem setting is highly relevant in practice as the zero-inventory policy is often applied not only for refrigerated foods but for any kind of good, i.e., flowers, cosmetics or medicine, which require special treatment provided only by particular trailers. Moreover, the zero-inventory policy is often voluntarily applied to avoid obstacles for material handling devices inside a terminal. The paper is structured as follows. After a brief literature review in Section 2, Section 3 provides a detailed problem description and its mathematical formalization. Suited exact (dynamic programming, DP) and heuristic (simulated annealing, SA) procedures for its solution are presented in Section 4. The results of an extensive computational study are summarized in Section 5. Section 6 explains the integration of the static truck scheduling problem in a rolling planning horizon and, finally, Section 7 concludes the paper. 2. Literature review
Previous research on cross docking mainly investigates one of the following decision problems: (i) location of cross docks and other kinds of intermediate warehouses (e.g. see the summaries about hub location problems provided by [9,15], (ii) layout of the dock (see [4]), (iii) assignment of outbound destinations to dock doors [23,24,13,3,6,21]. Only very few research papers deal with the short-term scheduling problems which continuously arise during the daily operations of cross docking terminals. Li et al. [16] consider material handling inside the terminal for a given truck schedule. Once a set of inbound and outbound trucks has been docked, all handling operations need to be assigned to resources, i.e. workers and material handling devices, e.g. fork lifts, in such a way that all unloading, sorting and loading operations are carried out as efficiently as possible. Li et al. [16] model this task as a machine scheduling problem and present a metaheuristic for its solution.
33
Up to now, only McWilliams et al. [18], Yu and Egbelu [26], Boysen et al. [7] as well as Miao et al. [19] treat the problem of truck scheduling, which is also in the focus of the paper on hand. However, none of these existing papers cover the requirements of the zeroinventory cross docking terminals of the food industry. McWilliams et al. [18] treat a different truck scheduling problem arising in a mail distribution center, where the movement of goods inside the terminal is conducted by a conveyor belt system. The resulting problem is solved by simulation based optimization. Yu and Egbelu [26] as well as Boysen et al. [7,8] consider stylized settings where a terminal consists of merely a single inbound and a single outbound door. Finally, Miao et al. [19] provide scheduling procedures adopted from gate assignment in airports, where trucks are assumed to have given service time windows, which are to be maintained as hard constraints. All of these assumptions are quite limiting with regard to real-world applications. Moreover, the existing truck scheduling approaches rely upon an intermediate storage of goods inside the terminal. Consequently, a novel truck scheduling problem is developed which covers the requirements of the zero-inventory cross docking terminals of the food industry as is presented in the following. 3. Detailed problem description
The basic input dataof truck schedulingis a set I of inbound trucks carrying goods, which are to be loaded onto a set O of outbound trucks serving different destinations. A first noteworthiness in food industry is, that inbound loads are dedicated to a specific outbound truck and destination, which means that a substitution of products of the same kind between different inbound trucks is not allowed. This results from the fact, that goods are pre-commissioned as ordered by the customer, because a re-packing inside the uncooled terminal is to be avoided. In order to prevent an unfreezing and decay of perishable foods, the intermediate storage inside the terminal is further forbidden (zero-inventory policy). Once the first inbound truck which carries load for a specific outbound destination is docked, the respective refrigerated outbound trailer o is to be docked as well, so that the goods can be directly transferred. The outbound truck remains under processing until the last inbound truck carrying load for o is served. Inbound trucks I and outbound trucks O are to be assigned todock doors, which are assumed to consist of an arbitrary given number DI of receiving doors and an arbitrary given number D O of shipping doors. Both door sets are operated in a segregated mode of service, so that inbound trucks are exclusively unloaded at the predefined set of receiving doors and outbound trucks are exclusively loaded at the fixed set of shipping doors. This assumption is in line with common organizational guidelines, which aim at avoiding mixed assignments of inbound and outbound trucks per door. Frequently, one side of the dock is exclusively dedicated to inbound and the other to outbound operations, in order to ease material handling inside the terminal (see [4, p. 237] ). At these dock doors inbound andoutboundtrucks areto be scheduled according to their chronological succession. In the food industry transported goods are shipped on standardized cargo carriers (e.g. euro pallets) and trailers of a standard size. Furthermore shipments are typically consolidated to full truckloads. As a consequence, handling operations (docking, unloading and undocking) of inbound trucks take a very similar amount of time. In fact if differences in service times do exist, they can hardly be anticipated upfront, so that practitioners tend to use approximate average service times over all trucks for planning purposes. In the decision problem continuous time space is thus discretized into periods of a fixed length, e.g. a quarter of an hour, which are sufficiently long to carry out all handling operations required to process an inbound truck. The whole planning horizon is hence represented
N. Boysen / Computers & Operations Research 37 (2010) 32--41
34
by the total number of periods t = 1 , . . . , T available. As inbound doors can be served simultaneously each period further contains DI service slots to which inbound trucks can be assigned. To reduce the delay of goods induced by the transshipment and to rapidly empty out trucks for succeeding shipping orders, dispatchers aim at processing all inbound trucks as soon as possible. With a given number D I of inbound doors available, at the earliest, a number | I | of inbound trucks can be processed in T = |I | /D I periods. T is thus the minimum makespan of the inbound schedule and bounds the number of periods available for truck handling within our model. To avoid unassigned slots in a solution and to ease the presentation, the set I can be filled with “virtual” inbound trucks carrying no goods. Thus, without loss of generality, it is assumed that: | I | = DI · T , so that the decision problem of inbound scheduling reduces to assigning the set I of inbound trucks to the T · DI slots available, which is stored in solution matrix : { 1 , . . . , T } × { 1 , . . . , DI } −→ I . The time requirements for moving goods inside the terminal generally depend on the relative distance between the dock doors to which the respective inbound and outbound trucks have been assigned. In the considered case of the food industry, cross docks tend to be held comparatively small. Typically, only a small subset of ad jacent doors of a larger cross dock is especially dedicated to frozen foods in order to reduce distances and movement times and thus the threat of defrost and decay. This justifies a further simplification of the truck scheduling problem, as movement times of goods inside the cross dock either become negligible or at least hardly vary from one truck to another. If movement times are assumed to be constant, they can be omitted in the decision problem as any retrieved solution can be turned into an appropriate schedule by simply reindexing the time periods shifted by the respective movement time. Further details on how to apply our truck scheduling model in a real-world rolling horizon setting are discussed in Section 6. The aforementioned premises allow for the following formalization of the truck scheduling problem. For each inbound truck i the set L i is known, which comprises all outbound trucks for which inbound truck i carries a load. Hence, we can also directly deduce the inverted sets L o of inbound trucks carrying loads for outbound truck o: L o = { i ∈ I |{o} ⊆ L i }∀o ∈ O . The zero-inventory policy requires that, as soon as the first inbound truck i ∈ L o is scheduled at a slot t , also outbound truck o has to be docked at an outbound door to receive the carried load and remains there until all trucks i ∈ L o have been processed. We can thus derive the set (o) of periods outbound truck o has to stay docked as follows:
(o) = t = 1 , . . . , T | min{(i)} t max{(i)} i∈Lo
i∈Lo
∀o ∈ O
(1)
where (i) denotes the period to which inbound truck i is assigned to in solution matrix . At the same time, such an outbound schedule has to regard the scarce number DO of outbound doors available. The cardinality of the set (t ) of outbound trucks actually processed in period t may therefore not exceed the given number DO of outbound doors. The set (t ) can be calculated as follows:
(t ) = { o ∈ O |{t } ⊆ (o)} ∀t = 1 , . . . , T
(2)
To reduce the delay of goods induced by the transshipment operations at a cross docking terminal, different reasonable objectives can be utilized to operationalize the general claim for synchronized inbound and outbound product flows. Of course, the most natural ob jective would be to minimize the overall costs associated with the distribution process. However, several influencing factors are difficult to quantify, i.e. the loss of goodwill, whenever goods arrive late at their final destinations. Consequently, operational planning and scheduling often employs surrogate objectives, so that the following three objectives are to be considered within this paper:
Table 1 Example data. I
1
2
3
4
5
6
DI
Li
1,2
2,3
3
4
1,2,4
∅
2
O
1
2
3
4
DO
DDo
1
2
3
2
3
Table 2 Impact of inbound schedules on the objectives of the truck scheduling problem. t
(t )
(t )
3 2 1
36 24 15 Solution A
{3} {2,3,4} {1,2,4}
13 46 25 Solution B
{1,2,3} {1,2,3,4} {1,2,3,4}
Flow time: To reduce the delay of goods, it is recommendable to schedule outbound trucks in such a way, that they leave the cross dock at the earliest point in time possible. The whole time span from the first period (t = 1) up to the departure of an outbound truck o is defined as the flow time of truck o . The flow time per outbound truck o is represented by the biggest element (period) of set (o), so that the overall flow time is equal to: F () = o∈O max{(o)}. Processing time: Another operational objective is to reduce the time span outbound trucks remain under processing (docked) at the terminal. By minimizing the processing time of outbound trucks, the average number of vehicles simultaneously processed per period is reduced as well, so that the scarce number of outbound doors are less utilized, which, i.e., increases flexibility whenever rush orders need to be additionally scheduled. The processing time of each single outbound truck can be computed by acquiring the cardinality of set |(o)| and the overall processing time amounts to: P () = o∈O |(o)|. Tardiness: Often, shipments are bound to due dates negotiated with the customers. If the remaining transportation time of an outbound truck once it has left the cross dock is (or can be reasonably approximated as being) a given constant, then a terminal-specific due date DD o can be derived, which determines the latest point in time outbound truck o has to leave the cross dock to ensure on time deliveries. Whenever such due dates exist, e.g. to avoid contractual penalties or losses of goodwill, the tardiness of outbound trucks is to be minimized. The total tardiness T () summarized over all outbound trucks amounts to: T () = o∈O max{0,max{(o)} − DDo }. Example: The dependency of these objectives on the schedule of inbound trucks shall be clarified by an example with the data given in Table 1. Five inbound trucks i= 1, .. . , 5 are given, whichcarry loads for o= 1, .. . , 4 outbound trucks. As there are assumed to be DI = 2 inbound doors available, T =| I | /DI = 52 = 3 periods are required to process all inbound trucks. To avoid empty slot assignments, the set of inbound trucks I is extended by one additional empty “virtual” inbound truck (T · DI − | I | = 3 · 2 − 5 = 1). The sets Li specify the outbound trucks inbound trucks i= 1, .. . , 6 carry load for. Additionally, parameters DDo record the due dates of outbound trucks, which are to be process at DO = 3 outbound doors available. The used notation is summarized in Table 3. Table 2 displays two alternative solutions matrices along with the resulting outbound truck sets (t ) actually processed in period t . Solution A results to a feasible solution with an overall flow time of F () = 8, a processing time of P () = 7, and a total tardiness of T () = 0. Solution B is infeasible (in periods 1 and 2 four outbound trucks need to be processed). Note that for some instances, e.g., inbound truck 5 delivers products for all four outbound trucks: L 5 = {1,2,3,4}, no feasible solution exists. In general, there are some alternative reactions to ensure feasible cross docking in such a setting: (i) An
N. Boysen / Computers & Operations Research 37 (2010) 32 -- 41 Table 3 Notation. I O T Lo Li DI DO DDo
Set of inbound trucks (index i ) Set of outbound trucks (index o ) Number of periods for (un-)loading trucks (index t ) Set of inbound trucks carrying items for outbound truck o Set of outbound trucks inbound truck i carries items for Number of inbound doors Number of outbound doors Due date for the departure of outbound truck o to ensure on time delivery {1 , . . . , T } × { 1 , . . . , DI }-matrix of inbound trucks assigned to slots Set of periods inbound truck i is assigned to within matrix Set of periods outbound truck o remains at the dock: {t = 1 , . . . , T |mini∈Lo {(i)} t maxi∈Lo {(i)}} Set of outbound trucks actually processed at the dock in period t : {o ∈ O |{t } ⊆ (o)}
(i) (o) (t )
35
stage which contains a subset V t ⊂ V of nodes representing states of the partial truck schedule up to sequence position t . Additionally, a start level t = 0 is introduced. Each index j ∈ V t identifies a state ( t , j) defined by the vector X tj of quantities X tji of all inbound trucks i ∈ I already scheduled up to sequence position t . It is sufficient to store the quantities of trucks instead of their exact partial slot assignment, because the set of outbound trucks actually served at decision point t + 1 only depends on the trucks scheduled before X tji irrespective of their exact order and the truck scheduled in t + 1. The following conditions define all feasible states to be represented as nodes of the graph: X tji = t · DI ∀t = 0 , . . . , T ; j ∈ V t
(8)
i∈I
X tji ∈ {0, 1} ∀i ∈ I ; t = 0 , . . . , T ; j ∈ V t
inbound truck can remain docked at the terminal for more than a single period. (ii) The products can be intermediately stocked inside the terminal. However, both reactions were forbidden in our realworld setting of food industry. Consequently, reaction (iii) remains, which is to resolve infeasibility by opening additional not yet utilized outbound doors. Section 6 elaborates on this reaction in detail. Thus, if an additional outbound door is opened and D O is enhanced to 4, Solution B entails a sum of flow times of F () = 11, a processing time of P () = 11, and a total tardiness of T () = 3. With the help of the notation summarized in Table 3 the truck scheduling problem (TRSP) can be formalized as follows. Model formulation: Within TRSP a matrix : {1 , . . . , T } × {1 , . . . , DI } −→ I is to be determined which minimizes one of the objective functions (3) to (5) subject to constraints (6) and (7): Minimize F () =
max{(o)} or
(3)
|(o)|
(4)
o∈O
Minimize P () =
or
o∈O
Minimize T () =
max{0, max{(o)} − DDo }
(5)
o∈O
Obviously, the node set V 0 contains only a single node (initial state (0, 1)) corresponding to the vector X 01 = [0,0, .. . , 0]. Similarly, node set V T contains a single node (final state ( T , 1)) with X T 1 = [1,1,...,1]. The remaining stages have a variable number of nodes depending on the number of different truck vectors X tj possible. Two nodes (t , j) and (t + 1, k) of two consecutive stages t and t + 1 are connected by an arc if the associated vectors X tj and X t +1k differ only in DI elements, i.e., exactly DI inbound truck are additionally scheduled in position t + 1. This is true if X tji X t +1ki holds for all i ∈ I , because both states are feasible according to (8) and (9). The overall arc set is defined as follows: E = { ((t , j), (t + 1, k))|t = 0 , . . . , T − 1; j ∈ V t ; k ∈ V t +1
and X tji X t +1ki ∀i ∈ I }
∀i ∈ I O
|(t )| D
∀t = 1 , . . . , T
(6)
OS tj =
4. Algorithms
This section provides suited algorithms for the solution to TRSP. First, an exact dynamic programming approach is presented (Section 4.1), then, a heuristic simulated annealing procedure (Section 4.2) is described. 4.1. Dynamic programming approach
The dynamic programming approach is based on an acyclic digraph G = (V , E , r ) with a node set V divided into T + 1 stages, a set E of arcs connecting nodes of adjacent stages and an arc weighting function r : E → N (see [5,8], for related approaches to sequencing mixed-model assembly lines). Each period t is represented by a
(10)
Li
∀t = 1 , . . . , T ; j ∈ V t
(11)
i∈I | X tji =1
(7)
Objective functions (3) and (4) minimize the overall flow time and processing time of outbound trucks, respectively, whereas objective function (5) minimizes the tardiness of outbound trucks, if due dates DDo are to be observed. Equalities (6) ensure that each inbound truck is processed in exactly one period, whereas constraints (7) restrict the number of outbound trucks actually served during period t to not exceed the number of outbound doors D O available.
Finally, arc weights r ((t ,i),(t +1,k)) assign the contribution to the overall objective value to each arc (and the scheduling decision represented by the arc). For this purpose, two different kinds of information, which can be easily deduced from the scheduled inbound trucks represented by a state, are to be stored with each node. First, the set contains all outbound trucks, which are actually processed at the OS tj dock or already completely loaded within preceding slots, induced by the respective occurrence of inbound trucks:
subject to |(i)| = 1
(9)
Second, the set OP covers all outbound trucks, which are completely tj loaded when the actual slot passed: OP tj = { o ∈ O |Lo ⊆ {i ∈ I | X tji = 1}} ∀t = 1 , . . . , T ; j ∈ V t
(12)
with the help of these two sets all arc weights can be calculated in dependency of the respective objective function actually considered: Flow time: To calculate the flow time of outbound trucks, for each single arc those outbound trucks need to be determined, which leave the system just after the respective period t + 1 passed. These outbound trucks simply amount to the relative complement of OP in tj and need to be weighted with the actual period t + 1, which OP t +1k equals the flow time of these trucks: F ()
P r ((t , j),(t +1,k)) = |OP t +1k \Otj | · (t + 1) ∀t = 1 , . . . , T − 1; j ∈ V t ; k ∈ V t +1
(13) Processing time: If the overall objective is to minimize the sum of processing times, then the number of outbound trucks actually processed during slot t + 1 needs to be derived as the arc weight. It simply amounts to the cardinality of the relative complement of O P tj
in O S , because all outbound trucks under processing with regard t +1k
N. Boysen / Computers & Operations Research 37 (2010) 32--41
36
Fig. 2. Example graph of the dynamic programming procedure.
to the successor node of stage t + 1, which have not been already completely loaded with regard to the predecessor node of stage t , remain under processing during t + 1 and contribute to the overall processing time: P ()
\ P | ∀t = 1 , . . . , T − 1; j ∈ V t ; k ∈ V t +1 r ((t , j),(t +1,k)) = |OS t +1k Otj
(14)
Tardiness: If due dates DDo need to be observed per outbound truck, the flow time of all outbound trucks leaving the dock can be directly utilized, because it equals the respective departure time of the truck. Whenever this departure time exceeds the given due date, a tardiness occurs, which is to be stored as the arc weight: T ()
r ((t , j),(t +1,k)) =
max{0, t + 1 − DDo }
\OP } o∈{OP tj t +1k
∀t = 1 , . . . , T − 1; j ∈ V t ; k ∈ V t +1
(15)
Moreover, the node weights dedicated to the processing time ob jective can directly be applied to decide on the feasibility of arcs and nodes. If the number of outbound trucks to be actually processed in a slot t exceeds the number D O of outbound doors availP () able: r ((t , j),(t +1,k)) > DO , the use of the arc would, in any case, result in an infeasible truck schedule. Thus, the arc is to be excluded from the graph. If all arcs flowing into a node are fathomed, the respective node is also infeasible and is to be excluded. With this graph on hand, the optimal solution to our truck scheduling problem reduces to finding the shortest path from the unique source node at level 0 to the unique sink node at level T , where the length of the path is given by the sum of weights of the arcs contained. The minimum objective value corresponds to the length of the shortest path. The corresponding truck assignment can be deduced by considering each arc ((t , j), (t + 1, k)) with t = 0, . . . , T − 1 on the shortest path SP . The D I inbound trucks to be assigned at sequence position t + 1 are the ones for which X t +1 ji − X tki = 1 holds. Example (cont.): Theresulting DP-graph which minimizes theprocessing time objective along with a (bold-faced) shortest path for our example is depicted in Fig. 2. This path corresponds to the optimal solution matrix = {{1, 5}, {2, 4}, {3, 6}} and a minimum processing time of P () = 7, which is also listed as solution A in Table 2. All arcs corresponding to infeasible assignments, which exceed the number of outbound doors available, have been omitted. Instead of constructing the complete graph before computing the shortest path, themore efficientDP approach consists of determining the shortest path from the initial state to each node stage-by-stage (t = 0 , . . . , T − 1). For this purpose, only two stages of the graph have to be stored simultaneously, because the shortest path to a node
(t + 1, k) in stage t + 1 is composed of a shortest path to a node (t , j) in stage t (already determined and stored) and the connecting arc ((t , j), (t + 1, k)). Among all predecessor states of (t + 1, k) the one with minimal arc weight is to be selected and stored. After reaching the final state (T , 1) in stage T , the optimal path can be retrieved in backward direction stage-by-stage using the stored predecessor nodes. Although compared to a full enumeration of all possible solution matrices the computational effort is already considerably reduced, a further speed-up is obtained by employing the idea of bounded dynamic programming (BDP) (e.g. [17,20,10,5,8]). BDP extends the DP approach explained above by additionally computing node specific lower bounds LBt , j on the remaining path length to the sink node. Furthermore, a global upper bound UB is determined upfront by some heuristic procedure(s). Whenever LBt , j plus the shortest path to the respective node is equal to or exceeds the upper bound UB , the node (t , j) can be fathomed as it cannot be part of a solution with a better objective value than the incumbent solution. Simple lower bounds for our three objectives are based on the relaxation of the coherency between inbound trucks and outbound loads. Under this prerequisite a separate inbound schedule is determined separately for each outbound truck, where it is assumed that all remaining inbound trucks carrying load for the respective outbound truck are assigned as soon as possible. To calculate the lower bounds per node (t , j) the value R(o, t , j) represents the least number of remaining periods to complete outbound truck o : R (o, t , j) = |Lo \{i ∈ I | X tji = 1}| /DI ∀o ∈ O ; t = 1, . . . , T − 1; j ∈ V t . With the help of this number all objective function specific lower bounds LB t , j can be derived for any node (t , j): Flow time: If the flow time of outbound trucks is to be minimized, then all remaining outbound trucks, which have not already been completely loaded with goods of the inbound bound trucks actually scheduled, can (at the earliest) leave the system after R (o, t , j) additional periods: F ()
LBt , j
=
(t + R(o, t , j)) ∀t = 1 , . . . , T − 1; j ∈ V t
(16)
} o∈{O\OP tj
Processing time: The minimum remaining processing time of any outbound truck equals the value R(o, t , j), so that these values just need to be summarized over all outbound trucks: P ()
LBt , j
=
R(o, t , j) ∀t = 1 , . . . , T − 1; j ∈ V t
(17)
o∈O
Tardiness: To determine a lower bound on the tardiness of outbound trucks, we simply have to compare the departure time
N. Boysen / Computers & Operations Research 37 (2010) 32 -- 41
37
Fig. 3. Example graph of the bounded dynamic programming procedure.
t + R(o, t , j) with the given due dates DD o with regard to each single remaining outbound truck: T ()
LBt , j
=
max{0, t + R(o, t , j) − DDo } ∀t = 1 , . . . , T − 1; j ∈ V t
} o∈{O\OP tj
(18) Remark: A further speed-up can be obtained by joining inbound trucks, which deliver products for an identical set Li of outbound trucks, to inbound truck types. Then, inbound trucks of the same type need not be considered multiple times within the possible inbound truck occurrences per stage, as an exchange of trucks of the same type at identical service slots leads to identical outbound schedules and, thus, objective values. This way, the number of states to be constructed and inspected per stage can be reduced. As the alterations required are truly straight forward, we skip a further description. Example (cont.): The reduction achieved by the BDP approach with regard to the number of nodes to be considered is depicted in Fig. 3 for our example and the processing time objective. Fathomed nodes (colored grey) base upon an upper bound of UBP () = 8, which is assumed to be calculated upfront by some heuristic procedure. 4.2. Simulated annealing
As within our DP and BDP approaches the number of states to be inspected raises exponentially with the number of inbound trucks |I |, problem instances of real-world size are barely solvable to optimality. Hence, a simulated annealing approach is presented in the following. SA is a stochastic local search metaheuristic, which bases the acceptance of a modified neighboring solution on a probabilistic scheme inspired by thermal processes for obtaining low-energy states in heat baths (e.g. [14,1]). Preliminary tests with simple priority rule based start heuristics, which step-wise fill the solution matrix and actual choices are guided by a simple priority rule, revealed that those approaches predominantly lead to infeasible solutions. Thus, a metaheuristic seems much more promising to guide the search into feasible regions of the solution space. Although other metaheuristics like tabu search are possible, SA is applied as it is a quite simple yet powerful approach often applied to real-world problems (e.g. see [11]). The SA approach directly operates on the solution matrix storing the assignment of inbound trucks to slots. As the neighborhoodfunction we apply a simple swapping move, which means that inbound trucks at two randomly chosen slots are interchanged. The initial solution matrix is randomly filled with inbound trucks. For a given solution matrix the respective objective function values Z () ∈ {F (), P (), T ()}, depending on the objective function
actually chosen, can be easily determined according to Eqs. (1) and (3)–(5). However, if the acceptance decision for a solution in the neighborhood is taken on the basis of the original objective value Z () only, the procedure might return infeasible solutions. As simple repair mechanisms are not on hand, we apply the idea of penalty costs to penalize solutions, which violate the number of outbound doors available in proportion to the degree of violation. Thus, a modified objective function Z SA () is applied to guide the acceptance of neighborhood solutions on the basis of a given penalty value PV :
T
Z SA () = Z () + PV ·
max{|(t )| − DO ; 0}
t =1
(19)
This modified objective value weights each occupied outbound door exceeding the number DO of outbound doors available with penalty costs PV per excess unit. The number of occupied doors |(t )| per period t induced by a solution is calculated in accordance with Eq. (2). A proper determination of the penalty value PV turns out to be a very critical task with regard to the performance of the SA. On the one hand, it is to be avoided that the SA gets stuck in less promising regions of the solution space (feasible solutions with poor ob jective values or even infeasible solutions surrounded by solutions violating even more outbound door constraints), which cannot be left due to only marginal acceptance probabilities of infeasible solutions. On the other hand, local optima might be missed if the search enters infeasible regions of the solution space too readily. It thus seems recommendable to employ variable penalty values in terms of a diversification-intensification strategy. For this purpose, penalty value PV is initialized with PV start = Z ()start / 10, where Z ()start is the objective value of the first random solution (be it feasible or not). Then, with each improvement of the modified objective value Z SA () the search towards a local optimum is intensified by increasing the penalty value PV := PV · 1.5. If within the last 30 swap moves (in direct succession) no improvement of Z SA () is obtained, PV is reduced by: PV : = PV · 0.5 to direct the search into other regions of the solution space (diversification). A neighborhood solution obtained by a swap move is accepted to replace the actual solution as the starting point for the next iteration on the basis of the following traditional probability scheme (e.g. [1]): if Z SA ( ) Z SA ()
1,
Prob( replacing ) =
exp
Z SA () − Z SA ( ) , C
otherwise (20)
N. Boysen / Computers & Operations Research 37 (2010) 32--41
38 Table 4 Parameters for instance generation.
Symbol
Description
DI T
Number of inbound doors Number of periods
Table 5 Results for the exact solution procedures.
Values 2, 3, 4, 5 4, 5, 6, 7, 8
Our SA is guided by a simple static cooling schedule (see [14]). The initial value for control parameter C = PV start · 2 is chosen, which is continuously decreased in thecourse of theprocedure by multiplying it with factor 0.995 in each iteration. If the penalty value PV falls below PV start / 200 , the procedure is restarted with a new random solution matrix and a re-initialized control parameter C . A total of 100,000 neighboring solutions are evaluated by our SA approach and the feasible solution (if obtained) with the minimum objective function value Z () is returned. Within our computational study, we only report results for the values of the control parameters described above, as preliminary studies indicated these parameter values to be most promising. 5. Computational study
Thus far, there is no established test-bed available for the truck scheduling problem treated in this paper. Therefore, we first elaborate on the instances that are used in our computational study. Then, numerical results on the performance of the proposed algorithms are discussed. 5.1. Instance generation
To derive the test instances the input parameters listed in Table 4 are used to produce the sets Li of outbound trucks served by inbound truck i and the number D O of outbound doors (and due dates DD o if required) defining a TRSP instance. These parameters are combined in a full-factorial design and in each case instance generation is repeated 20 times, so that 4 · 5 · 20 = 400 different instances were obtained. On the basis of a given set of parameters each single instance is generated as follows: (1) Determine the number |I | of inbound trucks, the number |O| of outbound trucks, and the number D O of outbound doors by: |I | = DI · T , | O| = T and D O = | O| / 2. (2) Initialize solution matrix with inbound trucks according to increasing truck number: ts = ( t − 1) · DI + s ∀ t = 1, . . . , T ; s = 1 , . . . , DI . For each inbound truck i ∈ I initialize the set Li of served outbound trucks with a single truck by: L i = (i). (3) Randomly choose an outbound truck by drawing an equally distributed integer number out of interval [1; |O|]. (4) Randomly choose a slot by drawing two equally distributed integer numbers out of the intervals [1; T ] and [1; DI ]. (5) Expand the set Li of the inbound truck assigned at the randomly chosen slot with the randomly determined outbound truck, if the instance remains feasible, i.e. | (t )| DO holds for any period t . If the last 100 attempts to expand a set L i failed, then go to step (6), otherwise proceed with step (3). (6) The additional due dates DDo , which are required for the tardiness objective, are derived by drawing an equally distributed random number out of the interval[1; T ] for each single outbound truck o . This procedure guarantees that a feasible TRSP solutions exists for each single instance. All generated instances can be downloaded from the internet (www.ibl-unihh.de\tea_boy.htm).
Measure
Number of optimal solutions Fraction of solved instances in % Average CPU-seconds
Flow time
Processing time
Tardiness
DP
BDP
DP
BDP
DP
BDP
302 75.5 81.4
321 80.3 70.2
302 75.5 81.2
327 81.8 63.4
300 75.0 85.0
327 81.8 65.8
5.2. Computational results
The methods described above have been implemented in C# (Visual Studio 2003) and run on a Pentium IV, 1800MHz PC, with 512 MB of memory. First, the performance of the exact solutions procedures, dynamic programming and bounded dynamic programming, is to be investigated. Table 5 compares the number of optimal solutions and the computational time for all three considered objective functions. Within the BDP approach, the solution obtained by the simulated annealing procedure serves as the upper bound solution. As the results show, the performance of both exact solution procedures seems widely uninfluenced by the objective function considered, because all results remain in a comparable order of magnitude. This result is not astounding, as only the calculation of the arc weights is adopted to account for a specific objective function, whereas the structure of the graph remains unaltered. BDP is able to solve about 5% more test instances compared to DP, if solution times are restricted to 300 CPU-s. Moreover, BDP outperforms DP with regard to the average CPU-s required. However, the latter result does not hold for each single instance, as the overhead for computing upper and lower bounds is only justified for larger test instances. To evaluate this trade-off and to determine the size of instances up to which the exact solution procedures can be reasonably applied, Tables 6–8 relate the solution performance to the size of the test instances. Again, it is to be stated, that only minor differences in the solution performance are caused by the objective function applied. A single break-even point with regardto the number of inbound trucks, at which the pruning of the graph by the BDP approach surmounts the additional efforts for bound computations, cannot be determined as it varies depending on the number T of periods and the number DI of inbound doors. These varying break-even points are marked within the Tables 6–8 by the underlined values. The size of instances, up to which DP and BDP can be reasonably applied, seems comparable and ranges between 20 and 25 inbound trucks. However, the instances of the cases T = 7 and DI = 3 (21 inbound trucks) as well as T = 6 and D I = 4 (24 inbound trucks) can be additionally solved to optimality by applying the BDP approach. Then, the performance of the heuristic simulated annealing approach and the lower bound procedures is reported. Table 9 lists the results for these procedures averaged over all instances, for which optimal solution values could be obtained. By aggregating the optimal solutions over all three objectives, we receive 975 test cases for both approaches. For all of these instances SA was able to find a feasible solution with regard to the scarce number of outbound doors and, moreover, only 8 of these instances (less then 1%) are not solved to optimality with an average time consumption of less than 1 CPU-s. (Notice, that the relative deviation from optimum per instance is determined by: Z (SA) − Z (BDP ) /Z (BDP ), where Z (SA) and Z (BDP ) represent the ob jective values of SA and BDP, respectively. This measure cannot be reported for the tardiness objective, as optimal objective values can be zero.) This solution quality obtained by only moderate computational effort promises the SA being an appropriate choice, whenever bigger problem instances of real-world size need to be solved.
N. Boysen / Computers & Operations Research 37 (2010) 32 -- 41
39
Table 6 Solution performance of exact procedures in relation to the size of test instances for the flow time objective. DI
T
Avg.
2
3
4
5
3 4 5 6 7
20(< 0.1) / 20(0.5) 20(< 0.1) / 20(0.6) 20(< 0.1) / 20(0.7) 20(0.4) / 20(0.9) 20(3.0) / 20(1.9)
20(< 0.1) / 20(0.5) 20(< 0.1) / 20(0.6) 20(0.5) / 20(0.9) 19(83.4) / 20(7.2) 3(275.8) / 11(228.4)
20(< 0.1) / 20(0.5) 20(0.1) / 20(0.7) 20(8.1) / 20(1.9) 0(300) / 10(247.7) 0(300) / 0(300)
20(< 0.1) / 20(0.5) 20(0.4) / 20(0.7) 20(56.0) / 20(8.9) 0(300) / 0(300) 0(300) / 0(300)
100%(< 0.1) / 100%(0.5) 100%(0.2) / 100%(0.6) 100%(16.0) / 100%(3.1) 49%(171.0) / 63%(138.9) 29%(219.8) / 39%(207.6)
Avg.
100%(0.7) / 100%(0.9)
82%(71.9) / 91%(47.5)
60%(121.7) / 70%(110.2)
60%(131.3) / 60%(120.7)
76%(81.4) / 80%(70.2)
Notes: # optimal solutions (average CPU-s) reported for DP/BDP.
Table 7 Solution performance of exact procedures in relation to the size of test instances for the processing time objective. DI
T
Avg.
2
3
4
5
3 4 5 6 7
20(< 0.1) / 20(0.5) 20(< 0.1) / 20(0.5) 20(< 0.1) / 20(0.7) 20(0.3) / 20(0.8) 20(2.8) / 20(1.3)
20(< 0.1) / 20(0.5) 20(< 0.1) / 20(0.6) 20(0.5) / 20(0.8) 19(80.9) / 20(6.2) 3(275.2) / 16(137.0)
20(< 0.1) / 20(0.5) 20(0.1) / 20(0.7) 20(7.6) / 20(1.0) 0(300) / 11(213.4) 0(300) / 0(300)
20(< 0.1) / 20(0.6) 20(0.5) / 20(0.7) 20(55.7) / 20(2.0) 0(300) / 0(300) 0(300) / 0(300)
100%(< 0.1) / 100%(0.5) 100%(0.2) / 100%(0.6) 100%(16.0) / 100%(1.1) 49%(170.3) / 64%(130.1) 29%(219.5) / 36%(184.6)
Avg.
100%(0.6) / 100%(0.8)
82%(71.3) / 96%(29.0)
60%(121.6) / 71%(103.1)
60%(131.3) / 60%(120.7)
76%(81.2) / 82%(63.4)
Notes: # optimal solutions (average CPU-s) reported for DP/BDP.
Table 8 Solution performance of exact procedures in relation to the size of test instances for the tardiness objective. DI
T
Avg.
2
3
4
5
3 4 5 6 7
20(< 0.1) / 20(0.5) 20(< 0.1) / 20(0.5) 20(< 0.1) / 20(0.7) 20(0.4) / 20(0.8) 20(4.4) / 20(1.5)
20(< 0.1) / 20(0.5) 20(< 0.1) / 20(0.6) 20(0.6) / 20(0.8) 18(117.0) / 20(7.0) 2(287.3) / 13(189.1)
20(< 0.1) / 20(0.5) 20(0.1) / 20(0.7) 20(10.3) / 20(1.8) 0(300) / 13(212.9) 0(300) / 1(290.8)
20(< 0.1) / 20(0.5) 20(0.5) / 20(0.7) 20(77.9) / 20(5.1) 0(300) / 0(300) 0(300) / 0(300)
100%(< 0.1) / 100%(0.5) 100%(0.2) / 100%(0.6) 100%(22.2) / 100%(2.1) 48%(179.4) / 66%(130.2) 28%(223.1) / 43%(195.4)
Avg.
100%(1.0) / 100%(0.8)
80%(81.0) / 96%(39.6)
60%(122.1) / 71%(101.3)
60%(135.8) / 60%(121.3)
75%(85.0) / 82%(65.8)
Notes: # optimal solutions (average CPU-s) reported for DP/BDP.
Table 9 Solution performance of simulated annealing ( SA) and lower bound procedures ( LB).
Measure
Number of optimal solutions (objective values) Percentage of optimal solutions (objective values) Average relative deviation from optimum in % Maximum relative deviation from optimum in % Average absolute deviation from optimum Maximum absolute deviation from optimum Average CPU-s
Flow time
Processing time
Tardiness
SA
LB
SA
LB
SA
LB
316 98.4 0.04 6.7 0.01 1 0.8
0 0.0 46.2 60.7 6.93 18 < 0.01
326 99.7 0.03 11.1 0.003 1 0.8
122 37.3 10.3 33.3 1.26 5 < 0.01
324 99.1 – – 0.005 1 0.8
73 22.3 – – 2.44 9 < 0.01
On the other hand, the lower bound procedures deviate considerably from optimal solution values, which is not astounding as all three procedures are just very basic bounds. An apparent result listed in Table 9 is the decline in solution quality of the bounds LB(F ) for the flow time objective and LB (T ) for the tardiness objective compared to LB (P ) for the processing time objective, which also explains the slight decrease of the BDP approach for these two objectives listed in Table 5. This result can be explained by the following considerations: • The value of any solution under the processing time objec-
tive, constitutes a lower bound on its corresponding flow time
objective value, as the flow time objective additionally considers waiting times of outbound trucks until their processing starts. As further the lower bound values at the source node (stage t = 0, see Eqs. (16) and (17) are identical for both problems, this lower bound value will need to be considerably tighter for the processing time objective as compared to the flow time objective. • For the calculation of the outbound trucks' tardiness, the flow time, which equals the departure time of outbound trucks, is an essential input, as well, so that the same consideration holds for the comparison of LB(P ) (processing time) and LB(T ) (tardiness objective). The 73 optimal solution values contributed by the lower bound LB (T ) predominantly stem from the 67 instances
N. Boysen / Computers & Operations Research 37 (2010) 32--41
40
resulting in an optimal solution with zero tardiness (T () = 0), for which the lower bound value results to zero in any case, as well.
real-world size. However, there remains some future research to be done: • Other procedures and further algorithmic developments might be
Notice, that the relative deviation from optimum per instance is determined by: ( Z (BDP ) − LB) /Z (BDP ), where LB represent the value of respective lower bounding procedure actually applied. Again, this measure cannot be reported for the tardiness objective.
6. Integration of TRSP in a rolling horizon
The presented decision problem treats the static case, where all inbound and outbound trucks to be scheduled are known in advance. In the real world, new inbound and outbound trucks constantly arrive at the dock, while a once determined schedule is processed. Unfortunately, the uncertainties with regard to arrival times of trucks makes a planning on estimated arrival times only meaningful up to a certain extent. For many practical implementations it might thus be recommendable to employ the model as part of a rolling horizons approach as is explained in the following: Once an inbound truck is completely unloaded and frees a receiving door, the TRSP is solved with all inbound trucks actually waiting on the yard (whereas expected inbound trucks are not considered). This requires an adoption of the basic TRSP, as all inbound trucks still under processing need to be fixed in the first period of TRSP, so that only a single slot of period t = 1 is available for assignment. Just as well, outbound trucks already docked need to be considered in TRSP. To avoid disproportionately high waiting times of “unattractive” inbound trucks a maximum waiting time is additionally introduced. As all alterations are truly straight forward, we skip a detailed adoption of algorithms. The inbound truck assigned to the single free slot of period t = 1 in the solution to TRSP is called up to occupy the unassigned receiving door. This procedure is repeated as soon as the next inbound door is freed. In a practical implementation, the dispatcher also needs to react on infeasible plans. The strict zero-inventory policy might make a simultaneous processing of the required number of outbound trucks impossible. Fortunately in real world cross docks, the number of doors is seldom a bottleneck. As investment costs raise subproportional with increasing dock doors, cross docks are often overdimensioned at least with regard to the doors available. Instead, the number of served doors is a political variable, which tends to be kept low in order to reduce transportation times within the dock for the given workforce on duty. This is especially true for the food industry, as frozen food is predominantly transshipped in a separate area of a larger terminal, so that additional doors can be withdrawn from the remaining terminal if necessary. If TRSP returns an infeasible solution, an additional outbound door can thus be temporarily opened and the TRSP is solved with the modified input data, until a feasible solution is retrieved. Once an outbound truck leaves the terminal, the respective outbound door is closed again. 7. Conclusions
The paper on hand introduces a novel truck scheduling problem, which synchronizes inbound and outbound flows of goods at the zero-inventory cross docking terminals of the food industry. Different objectives (minimization of flow time, processing time and tardiness) are investigated and suited exact (dynamic programming) and heuristic (simulated annealing) approaches are presented. The computational tests especially indicate the appropriateness of the developed simulated annealing procedure to solve problem instances of
able to enhance the performance of solving the truck scheduling model. Especially, the runtime of the bounded dynamic programming approach can be considerably reduced by developing more sophisticated lower bound procedures. • Although the author considers the NP-hardness of the problem to be very likely, the complexity of the problem remains open. • In other branches than the food industry modified truck scheduling problem might occur, so that further operational characteristics need to be considered. For instance, a look-ahead of inbound trucks arriving at the yard in the near future might be reasonable. If trucks do not arrive simultaneously but shifted in time, an additional arrival date needs to be assigned to each inbound truck. Such inbound truck specific arrival times can be easily incorporated in the model and the algorithms alike. In the dynamic programming approach arrival times simply lead to infeasible arcs, which would otherwise induce a scheduling of inbound trucks ahead of their arrival. Other operational characteristics like a movement time of goods which depends on the distance between the respective inbound and outbound doors or truck specific processing times require some more alterations, but can, at least, quite easily be incorporated in the simulated annealing approach. Although the truck scheduling problem presented is dedicated to a specific real-world case in the food industry, themodelis of sufficient generality to serve as a base model, which can be adopted to cover several further extensions of real-world truck scheduling problems, alike.
References [1] Aarts EHL, Korst JHM, van Laarhoven JM. Simulated annealing. In: Aarts EHL, Lenstra JK, editors. Local search in combinatorial optimization. Chichester; 1997. p. 91–120. [2] Apte UM, Viswanathan S. Effective cross docking for improving distribution efficiencies. International Journal of Logistics: Research and Applications 2000;3:291–302. [3] Bartholdi JJ, Gue KR. Reducing labor costs in an LTL cross docking terminal. Operations Research 2000;48:823–32. [4] Bartholdi JJ, Gue KR. The best shape for a crossdock. Transportation Science 2004;38:235–44. [5] Bautista J, Companys R, Corominas A. Heuristics and exact algorithms for solving the monden problem. European Journal of Operational Research 1996;88: 101–13. [6] Bermudez R, Cole MH. A genetic algorithm approach to door assignments in breakbulk terminals. Technical Report MBTC-1102, Mack Blackwell Transportation Center, University of Arkansas, Fayetteville, Arkansas; 2001. [7] Boysen N, Fliedner M, Scholl A. Sequencing inbound and outbound trucks at cross docking terminals. OR Spectrum; 2007, to appear. [8] Boysen N, Fliedner M, Scholl A. Sequencing mixed-model assembly lines to minimize part inventory cost. OR Spectrum 2007;30:611–30. [9] Campbell JF. A survey of network hub location. Studies in Locational Analysis 1994;6:31–49. [10] Carraway RL, Schmidt RL. An improved discrete dynamic programming algorithm for allocating resources among interdependent projects. Management Science 1991;37:1195–200. [11] Dowsland KA. Simulated annealing. In: Reeves CR, editor. Modern heuristic techniques for combinatorial problems. London; 1993. p. 20–69. [12] Forger G. UPS starts world's premiere cross-docking operation. Modern Material Handling; 1995:36–8. [13] Gue KR. The effect of trailer scheduling on the layout of freight terminals. Transportation Science 1999;33:419–28. [14] Kirkpatrick S, Gelatt CD, Vecchi MP. Optimization by simulated annealing. Science 1983;220:671–80. [15] Klose A, Drexl A. Facility location models for distribution system design. European Journal of Operational Research 2005;162:4–29. [16] Li Y, Lim A, Rodrigues B. Crossdocking—JIT scheduling with time windows. Journal of the Operational Research Society 2004;55:1342–51.
N. Boysen / Computers & Operations Research 37 (2010) 32 -- 41
[17] Marsten RE, Morin TL. A hybrid approach to discrete mathematical programming. Mathematical Programming 1978;14:21–40. [18] McWilliams DL, Stanfield PM, Geiger CD. The parcel hub scheduling problem: a simulation-based solution approach. Computers & Industrial Engineering 2005;49:393–412. [19] Miao Z, Lim A, Ma H. Truck dock assignment with operational time constraint within crossdocks. European Journal of Operational Research 2009;192:105–15. [20] Morin TL, Marsten RE. Branch-and-bound strategies for dynamic programming. Operations Research 1976;24:611–27. [21] Oh Y, Hwang H, Cha CN, Lee S. A dock-door assignment problem for the Korean mail distribution center. Computers & Industrial Engineering 2006;51: 288–96.
41
[22] Stalk G, Evans P, Shulman LE. Competing on capabilities: the new role of corporate strategy. Harvard Business Review 1992;70(2):57–69. [23] Tsui LY, Chang C-H. A microcomputer based decision support tool for assigning dock doors in freight yards. Computers & Industrial Engineering 1990;19: 309–12. [24] Tsui LY, Chang C-H. An optimal solution to dock door assignment problem. Computers & Industrial Engineering 1992;23:283–6. [25] Witt CE. Crossdocking: Concepts demand choice. Material Handling Engineering 1998;53(7):44–9. [26] Yu W, Egbelu PJ. Scheduling of inbound and outbound trucks in cross docking systems with temporary storage. European Journal of Operational Research 2006;184:377–96.