• No results found

Scheduling trucks and workers in a cross dock with flexible doors

N/A
N/A
Protected

Academic year: 2021

Share "Scheduling trucks and workers in a cross dock with flexible doors"

Copied!
26
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Scheduling trucks and workers in a cross dock with flexible doors

(2)
(3)

Scheduling trucks and workers in a cross dock with flexible doors

Siegrid Lenting

Abstract

The cross dock scheduling problem addressed in this paper is aimed at assigning trucks to doors, assigning workers to the tasks of unloading inbound trucks, transferring goods through the cross dock and loading goods into outbound trucks in a cross dock with inbound, outbound, and flexible doors. The goal is to minimize the total tardiness of the trucks. We develop a parallel heuristic algorithm using an adaptive large neighborhood search approach. In order to assess the performance of our algorithm we test it on a special case that does not include flexible doors and has an unlimited workforce. We improve best known solutions for large instances at this setting on average by 2.66% and find optimal and near optimal solutions for small instances. We also introduce a new, richer instance set and use it to show that the number of workers has a strong influence on the efficiency of the cross dock.

1

Introduction

Cross docking is a commonly used distribution strategy ([2], [15]) aimed at increasing the fill rates of trucks in transportation networks. Goods from various origins are transported to a facility, henceforth called cross dock, where they are unloaded from their inbound trucks, re-grouped, loaded into outbound trucks, and finally transported to their destinations. An essential feature of cross docking is that goods stay only shortly in the cross dock.

For the cross dock to function efficiently and effectively, many interrelated operational decisions have to be considered simultaneously [6]. A cross dock usually has multiple doors that can be dedicated to inbound or outbound trucks, or used flexibly serving both inbound and outbound trucks. Each truck needs to be assigned to a door for loading or unloading. As there may be more trucks than doors available at any given time, besides the assignment of trucks to doors, also a decision must be made about the sequence in which to process the trucks. This sequence is restricted by the arrival times of trucks and influenced by their due times.

(4)

that only a limited number of tasks can be performed at a time and that the duration and sequence of these tasks is relevant. For the unloaded goods there are two options. They may be put in the so-called “staging area”, where the goods can temporarily wait until they can be loaded onto the appropriate outbound truck. Alternatively, they can be transferred directly to the outbound truck, however, this is only possible if that truck is docked at a door at that time as well. The loading process is the mirror image of the unloading process.

Typically, shippers determine the arrival times of trucks at the cross dock and set due times for the departure of trucks [6, 10]. As the main role of a cross dock in a supply chain is to provide expedited transfer of goods between trucks, aimed at facilitating transportation efficiency, the re-sulting objective for the cross dock is to minimize the tardiness of outbound trucks. All operational decisions, door assignment, truck sequencing, and worker task assignment have their effects on truck tardiness.

In this paper, we study the integrated problem of assigning trucks to dock doors, sequencing trucks at dock doors, and scheduling a capacitated workforce in a cross dock with the goal to minimize total truck tardiness. For compatibility with some of the existing literature, we will present a more general objective of minimizing the weighted sum of total distances traveled in the cross dock and the total truck tardiness.

Many papers about cross docking can be found in the literature and Buijs et al. [6], van Belle et al. [15], Boysen and Fliedner [4], and Ladier and Alpan [10] provide extensive surveys. Ladier and Alpan [10] compare research with practice and find that there are still some gaps between literature and practice. Most notably, they mention that not many papers deal with flexible service mode doors, due times, and limited resource capacity, while this is very common in practice. Therefore, we focus on these gaps and extend prior work in that direction.

(5)

Recently, the combined consideration of truck scheduling and door assignment is gaining attention [10]. Van Belle et al. [16] study a cross dock scheduling problem with time windows and an unlimited workforce. They minimize the total travel time and total tardiness and use a tabu search heuristic to find solutions to their problem. Assadi and Bagheri [1] solve a similar cross dock scheduling problem with interchangeable goods, time windows for both inbound and outbound trucks and different transshipment times between doors. They decide how many goods go from one truck to the other. Their objective is to minimize the total earliness and tardiness for outbound trucks. Storage is only possible at the receiving docks, which are assumed to have infinite capacity. They solve their problem with two meta-heuristics and an implementation of their formulation in CPLEX.

Few papers take into account the workforce responsible for unloading, transferring, and loading of the goods. Shakeri et al. [12, 13] schedule trucks to doors and sequence them, and schedule the movement of goods to their destination doors. They assume that there is one dedicated worker per door available for loading or unloading goods. Their objective is to minimize the makespan. To our knowledge, Hermel et al. [9] are the first to provide an approach that includes all relevant scheduling tasks at a cross dock, including the scheduling of a limited workforce. They solve the problem sequentially in four stages, with distinct objectives per stage. For example, dock-door assignments are made to minimize weighted distances of material flows, while resource scheduling aims at minimizing makespan. In contrast, we provide an approach that simultaneously considers all relevant scheduling processes, allowing for integrated decision-making in achieving the facility’s overarching objective of minimizing truck tardiness. Due to this difference in objectives, solutions to the two problems are not comparable. Furthermore, the approach of Hermel et al. [9] relies strongly on the fact that trucks can be clustered such that no loads need to be exchanged between clustered; our approach does not have this restriction.

(6)

2

Problem formulation

In this section, we formally describe and formulate the cross dock scheduling problem with capaci-tated workforce. The number of inbound trucks is given by TI and the number of outbound trucks

by TO. The set of inbound trucks is given by I = {1, 2, ..., TI} and the set of outbound trucks by

O = {TI + 1, TI+ 2, ..., TI + TO}, and the set of all trucks is given by T = I ∪ O. Trucks carry

standardized unit size pallets, which are pre-distributed [17], meaning that it is known beforehand to which outbound truck each pallet has to be transferred. The number of pallets transferred from truck i ∈ I to truck j ∈ O is fij. We define parameter gij equal to 1 if there is a transfer from truck

i ∈ I to truck j ∈ O. All arrival times and due times of the trucks are assumed to be known. The processing of a truck should be finished before the due time, otherwise tardiness costs are incurred. Arrival times of trucks are given by ai, i ∈ T and due times of trucks are given by di, i ∈ T .

We consider a cross dock with multiple dock doors, that can either be dedicated to serving only inbound or outbound trucks, or be flexible and operate in both service modes. We define K as the number of inbound doors, L as the number of outbound doors, and F as the number of flexible doors. There are three sets of doors, DI = {1, 2, ..., K} for inbound, DO= {K + 1, K + 2, ..., K + L}

for outbound and DF = {K + L + 1, K + L + 2, ..., K + L + F } for flexible doors. The set of all doors

is given by D = DI∪ DO∪ DF. The travel time between doors k ∈ DI ∪ DF and ` ∈ DO∪ DF is

known and given by mk`. In front of each door there is a staging area, where pallets are unloaded

and can wait for the next operation. We assume the staging areas to have infinite capacity.

All material handling tasks are performed by a limited number W of workers, and the set of workers is given by W = {1, 2, ..., W }. There are three types of tasks a worker can perform: unloading, transferring, and loading pallets. An unloading task consists of unloading all pallets from an inbound truck. The duration or processing time of the task depends on the number of pallets on the truck. We assume that unloading a pallet takes one time unit and that it can only be done by one worker at a time, one pallet at a time. Since for unloading, the travel time from dock door to staging area is typically negligible, we set the processing time for unloading equal to the number of pallets.

(7)

by a worker.

A loading task consists of loading all pallets in a staging area from the same inbound truck into an outbound truck. Similarly to the unloading task, pallets can be loaded one at a time by one worker, in one time unit per pallet. A loading task can start only after the outbound truck is docked. If the outbound truck is already docked at the time of transferring, the pallets are immediately loaded into the outbound truck by the worker who performs the transfer task. We assume that immediately loading the pallet into an outbound truck takes the same amount of time as placing the pallet into the staging area. Hence, if the outbound truck is available at the time of transferring, the total time needed for transfer and loading is assumed equal to the time needed for transfer if the outbound truck is not yet available.

Truck changeover time, the time that is needed for one truck to leave a dock door and another truck to dock at the same door, is assumed to be the same for all trucks and is given by C. After an inbound truck is unloaded, a new truck can dock once all pallets of that inbound truck have been moved and the previous truck has left. Similarly, an outbound truck is finished and leaves immediately after all its pallets are loaded. No pre-emption is allowed for both the trucks and the workers.

The objective of our problem is to minimize a weighted combination of two objectives: the total transfer distance and the total tardiness. Weights w1 and w2 balance the total transfer time and

total tardiness, respectively. We define M as a large number.

Summarizing we have the following parameters.

fij number of pallets transferred from truck i ∈ I to truck j ∈ O,

gij equal to 1 if there is a transfer from truck i ∈ I to truck j ∈ O,

ai arrival time of truck i ∈ T ,

di due time of truck i ∈ T ,

mk` transfer time between door k ∈ DI∪ DF and door ` ∈ DO∪ DF,

W number of workers, C changeover time,

w1 weight for transfer time,

w2 weight for tardiness,

(8)

For the decision variables that are defined next, indices t and u indicate the task type, where 0 indicates an unloading task, 1 a transferring task, and 2 a loading task. The following continuous decision variables are defined:

αi start time of truck i ∈ T ,

δi completion time of truck i ∈ T ,

τi tardiness of truck i ∈ T ,

stij time when task type t of inbound truck i ∈ I and outbound truck j ∈ O starts, j = 0 for unload tasks,

etij time when task type t of inbound truck i ∈ I and outbound truck j ∈ O is completed, j = 0 for unload tasks.

The following binary decision variables are used:

xik equal to 1 if inbound truck i ∈ I is assigned to door k ∈ DI∪ DF or outbound truck i ∈ O

is assigned to door k ∈ DF ∪ DO,

zijk` equal to 1 if inbound truck i ∈ I is assigned to door k ∈ DI∪ DF, outbound truck j ∈ O is

assigned to door ` ∈ DF ∪ DO,

qij is equal to 1 if trucks i ∈ T and j ∈ T are assigned to the same door and truck i is a

predecessor of truck j,

htijc is equal to 1 if task type t of inbound truck i ∈ I and outbound truck j ∈ O is performed by worker c ∈ W, j = 0 for unloading tasks,

υijk`tu is equal to 1 if task type t of inbound truck i ∈ I and outbound truck j ∈ O is a predecessor of task type u of inbound truck k ∈ I and outbound truck ` ∈ O, and both are assigned to the same worker.

The mixed integer programming model can now be formulated as follows:

(9)

zijk`≤ xik ∀i ∈ I, ∀j ∈ O, ∀k ∈ DI∪ DF, ∀` ∈ DF ∪ DO (4) zijk`≤ xj` ∀i ∈ I, ∀j ∈ O, ∀k ∈ DI∪ DF, ∀` ∈ DF ∪ DO (5) xik+ xjk− 1 ≤ qij+ qji ∀i, j ∈ T , k ∈ D (6) qij+ qji≤ 1 ∀i, j ∈ T (7) αj ≥ aj ∀j ∈ T (8) αj ≥ δi+ T − M (1 − qij) ∀i, j ∈ T (9) δi≥ e0i0 ∀i ∈ I (10) δj ≥ e2ij ∀i ∈ I, ∀j ∈ O (11) s0i0≥ αi ∀i ∈ I (12) e0i0= s0i0+X j∈O fij ∀i ∈ I (13) s1ij ≥ e0i0 ∀i ∈ I, ∀j ∈ O (14) e1ij = s1ij + X k∈DI∪DF X `∈DO∪DF fij · mk`· zijk` ∀i ∈ I, ∀j ∈ O, ∀k ∈ DI∪ DF, ∀` ∈ DO∪ DF (15) s2ij ≥ e1ij ∀i ∈ I, ∀j ∈ O (16) e2ij ≥ s2ij + fij · I{αj≤s1ij} ∀i ∈ I, ∀j ∈ O (17) X c∈W htijc= 1 ∀i ∈ I, ∀j ∈ O ∪ {0}, t ∈ {0, 1, 2} (18)

htijc+ huk`c− 1 ≤ υtuijk`+ υutk`ij ∀i, k ∈ I, ∀j, ` ∈ O, c ∈ W, t, u ∈ {0, 1, 2} (19)

υijk`tu + υk`ijut ≤ 1 ∀i, k ∈ I, ∀j, ` ∈ O, t, u ∈ {0, 1, 2} (20)

stij ≥ euk`· υutk`ij ∀i, k ∈ I, ∀j, ` ∈ O, t, u ∈ {0, 1, 2} (21)

τi ≥ δi− di ∀i ∈ T (22)

αi≥ 0, δi ≥ 0, τi≥ 0 ∀i ∈ T (23)

stij ≥ 0, etij ≥ 0 ∀i ∈ I, ∀j ∈ O, t ∈ {0, 1, 2} (24)

xik∈ {0, 1}, zijk`∈ {0, 1} ∀i, j ∈ T , ∀k ∈ D, ∀` ∈ DF ∪ DO (25)

qij ∈ {0, 1}, htijc∈ {0, 1}, υtuijk`∈ {0, 1} ∀i, j ∈ T , ∀c ∈ W, ∀k, ` ∈ D, ∀t, u ∈ {0, 1, 2}. (26)

The objective function (1) minimizes the weighted transfer time and tardiness with weights w1

and w2. Constraints (2) make sure that every truck is assigned to exactly one door. Constraints

(10)

truck i ∈ I docked at door k ∈ DI∪ DF that has to be transferred to truck j ∈ O docked at door

l ∈ DF ∪ DO. Constraints (6) and (7) enforce that if two trucks are scheduled at the same door,

one of the trucks has to be a predecessor of the other. Constraints (8) ensure that the processing of a truck can only start after the arrival of that truck and constraints (9) make sure that when there is a predecessing truck at the same door, the processing of a truck starts after the predecessor is finished plus changeover time. Constraints (10) ensure that the unloading task need to be finished before the truck can leave. Similarly, all load tasks need to be completed before an outbound truck can finish, this is specified in constraints (11). The unloading of an inbound truck can only start when that truck is docked, as is imposed by constraints (12). Constraints (13) specify the completion times of the unloading tasks. Constraints (14) ensure that a transfer task from truck i ∈ I to truck j ∈ O can only start when the unloading of truck i is finished. Constraints (15) define the completion time of all transfer tasks. Constraints (16) make sure that the loading task of a set of pallets starts after the transfer task of the same set of pallets. Constraints (17) ensure that if a truck was docked at the start of the transfer of a set of pallets, they are loaded immediately and the loading task has processing time zero, otherwise they have a processing time equal to the number of pallets that need to be loaded. Constraints (18) make sure that every task is assigned to exactly one worker. Constraints (19) and (20) define the precedence of tasks that are assigned to the same worker. Constraints (21) ensure that a task only starts after its predecessor at the same worker is completed. Constraints (22) determine the tardiness of trucks. Finally, constraints (23)–(26) specify the domains of all variables.

In order to make the model linear, we linearize constraints (17) and (21) as follows. We define 0 ≤ ε ≤ M1 and replace Ij≤s1

ij} with pij and add the following constraints

(11)

We define yut

ijk`= euk`· υutk`ij and add the following constraints

yijk`ut ≤ M υutk`ij ∀i, k ∈ I, j, ` ∈ O, u, t ∈ {0, 1, 2} (29)

yijk`ut ≤ euk` ∀i, k ∈ I, j, ` ∈ O, u, t ∈ {0, 1, 2} (30)

yijk`ut ≥ euk`− (1 − υk`ijut )M ∀i, k ∈ I, j, ` ∈ O, u, t ∈ {0, 1, 2} (31)

yijk`ut ≥ 0 ∀i, k ∈ I, j, ` ∈ O, u, t ∈ {0, 1, 2} (32)

3

Heuristic

In order to find solutions to real size instances of the cross-dock scheduling problem described in Section 2, we develop a heuristic algorithm using an ALNS approach [11]. Many papers have shown that the ALNS works well for problems with different levels of complexity, since it efficiently explores different neighborhoods. Examples are Pisinger and Ropke [11], Stenger et al. [14], Hemmelmayr [8], and Bodnar et al. [3]. First, we explain the framework of this solution approach, then we propose a heuristic method to create an initial feasible solution. Subsequently, we define a representation for the solutions, we describe the neighborhood operators that are used to modify solutions, the local search procedure, and the values of the parameters of our algorithm.

3.1 Framework of solution approach

The pseudo code of the heuristic is given in Algorithm 1. First an initial solution is constructed. Then, while the stopping criteria are not met, the following steps are executed. We first select a destroy and repair operator using a roulette wheel selection. In this step, a truck and all material handling tasks associated with it are removed from the schedule by the selected destroy operator and they are reinserted by a repair operator such that a new solution is constructed. If the solution is promising, i.e., the objective value of the new solution is not higher than (1 + θ) times the best one found so far, a local search procedure is performed on the task sequence. The acceptance of the new solution is based on simulated annealing using initial temperature b and cooling parameter φ. Finally, the scores πj of the chosen operator pair j and the temperature are updated. If a solution

was accepted πj is increased by σ1, if the working solution is improved, πj is increased by σ2, and if

the best solution is improved πj is increased by σ3. Every κ iterations, the temperature is reheated

(12)

be escaped. The stopping conditions for the algorithm are when the maximum number of iterations ι is reached or the objective value is zero. An objective value of zero can happen when all outbound trucks park at the same flexible doors as the inbound trucks they receive goods from, and there is no tardiness. When one of the stopping criteria is met, the best found solution is returned.

We have implemented a parallel version of this algorithm, where multiple threads run the algorithm, inspired by Hemmelmayr [8]. There is a list of best solutions of length ν that is accessible to all threads and the best solution that is found by each thread is communicated to this list every 500 iterations. If one of the threads has κ iterations without improvement, one of the solutions from the list is randomly chosen as the working solution.

Algorithm 1 ALNS algorithm

Construct a feasible solution s; set s∗ ← s for all iterations do

Choose a destroy operator and a repair operator using roulette wheel selection based on previous scores {πj}

Generate a new solution s0 from s using the chosen destroy and repair operators if s0 < (1 + θ)s∗ then

Perform local search on s0 end if

if acceptanceCondition(τ ) then s ← s0

end if

if objective value has decreased then s∗ ← s end if Update scores of πj Update temperature end for Return s∗ 3.2 Initial Solution

(13)

each inbound door, then one outbound truck is assigned to each outbound door, then one inbound truck and one outbound truck are assigned to each flexible door. This process repeats until there are no more trucks. Then a sequence of material handling tasks is created, depending on precedence constraints. There are two types of precedence constraints, the first type depends on the sequence in which certain material handling tasks need to be executed and the second type depends on the truck schedules. For example, a pallet cannot be transferred before it is unloaded and it cannot be loaded if it has not been transferred to the correct door or the outbound truck is not docked at the door. Furthermore, if two trucks are scheduled at the same door, all tasks of the preceding truck have to be finished before the tasks of the second truck can be executed.

The start and completion times of material handling tasks and start and completion times of trucks are calculated as follows. First a number of settings are initialized. All workers are available at time zero. The processing time of all load tasks is initialized to 0. For each task, the earliest possible start time is set to the arrival time of the corresponding truck and the start time of all trucks is set to their arrival time.

The following steps are executed for every material handling task in the task sequence. The start time of the task is set to the maximum of the earliest possible start time of that task, and the time the next worker is available. The completion time of the task is set to the start time of that task plus its processing time. In case the task is a transferring task, if the outbound truck is not docked, the processing time of the corresponding load task is set. If all tasks of the truck corresponding to the task are finished, the end time of the truck is set to the end time of the task and the start time of the next truck at the same door is set to the maximum of its arrival time and the end time of the current truck plus changeover time. The earliest possible start times of all successive tasks are updated to the maximum of the start time of their truck and the end time of the current task.

3.3 Solution representation

(14)

the first available worker. With this information, the start and completion times of all the trucks and tasks can be calculated as described above. This has to be done after every change in the schedule.

For example, suppose we have three inbound trucks and three outbound trucks, and one inbound door and one outbound door and a matrix with the number of pallets that need to be transferred between trucks as in Figure 1. Then, the tasks are numbered as follows:

task 1: unload truck 1 task 8: transfer from truck 3 to truck 6 task 2: unload truck 2 task 9: load pallets into truck 4 from truck 1 task 3: unload truck 3 task 10: load pallets into truck 4 from truck 2 task 4: transfer from truck 1 to truck 4 task 11: load pallets into truck 5 from truck 1 task 5: transfer from truck 1 to truck 5 task 12: load pallets into truck 5 from truck 3 task 6: transfer from truck 2 to truck 4 task 13: load pallets into truck 6 from truck 3 task 7: transfer from truck 3 to truck 5

In Figure 1 can be seen an example of a feasible schedule with a task sequence and a sequence of trucks per door.

Figure 1: Schedule representation example

3.4 Neighborhood operators

(15)

• Random removal: randomly select a truck and remove it from the schedule, based on the random removal operator by Pisinger and Ropke [11].

• Worst weighted distance removal: randomly select a truck from the ρ trucks with the worst weighted distance to other trucks and remove it from the schedule. The weighted distance is computed as the sum of the distance to all doors the chosen truck has to take pallets to or receive pallets from, times the number of pallets.

• Worst tardiness removal: randomly select a truck from the ρ trucks with the highest tardiness and remove it from the schedule.

• Worst cost removal: randomly select a truck from the ρ trucks with the highest total cost and remove it from the schedule.

• Worst gap removal: randomly select a truck from the ρ trucks with the largest gap between the end time of the previous truck and the start time of the truck at the same door and remove it from the schedule.

• Worst processing time removal: randomly select a truck from the ρ with the longest processing time and remove it from the schedule.

Except for the first destroy operator, the operators are based on the worst removal operator by Pisinger and Ropke [11].

During the repair phase, the truck is inserted in the schedule according to a repair operator. To avoid infeasible solutions, we check whether the graph corresponding to the truck schedule is cyclic. For example, an outbound truck could wait forever for pallets from an inbound truck that is scheduled later at the same flexible door. In case this happens, the truck is inserted at a random door. After the insertion of the truck, the tasks corresponding to that truck have to be inserted in the task sequence. The following repair operators are used:

• Random insertion: insert a truck at a random door at a random location in the truck sequence of that door.

(16)

• Best distance, best time insertion: insert a truck at a door such that the sum of the distances to its connecting trucks times the number of pallets that have to be moved is minimized. Trucks are inserted at the location in the task sequence which gives the lowest objective value.

• Best tardiness insertion: insert the truck in one of the γ best positions such that the tardiness of that truck is minimized.

• Best cost insertion: insert the truck in one of the γ best positions where the objective value is minimized.

• Swap trucks: randomly pick another truck, insert the removed truck at that location, remove the other truck and insert it at the location of the first truck. This operator is similar to the swap operator used in Bodnar et al. [3].

• Move earlier: insert the removed truck one place earlier in the truck sequence at the same door. This operator is similar to the backward insertion operator used in Bodnar et al. [3].

• Move later: insert the removed truck one place later in the truck sequence at the same door Bodnar et al. [3]. This operator is similar to the forward insertion operator used in Bodnar et al. [3].

• Swap related trucks: Similar to the swap operator, two trucks swap places, but instead of randomly picking a truck, the truck with the closest arrival time is chosen. This operator is inspired by the time oriented removal operator in Pisinger and Ropke [11].

(17)

worst gap removal and best tardiness insertion, worst gap removal and shift truck earlier, worst gap removal and swap trucks,

worst gap removal and swap related trucks, worst distance removal and swap trucks, worst processing time and swap related trucks,

all combinations with shift truck later, except worst gap removal.

3.5 Local search

If a solution looks promising and the objective value is within θ × 100% of the best found objective, a local search is performed. During the local search, the schedule of the trucks is taken as an input and only the sequence of tasks can change. The procedure loops through all tasks and performs the following steps on each task. The task is first removed and then reinserted at every feasible location in the task sequence to compute the new objective. This allows to recompute and set appropriate times for each task, but it is also a very time-consuming procedure. The task is finally inserted at the location in the task sequence with the lowest objective value. In our implementation, we keep part of the previous schedule and only recompute the times from the first task that was changed in the task sequence to the last.

3.6 Parameter tuning

The performance of the ALNS depends on its parameter settings. Therefore we describe the process of tuning our parameters. Experiments were done on a small set of instances and the best performing parameters are chosen. The objective value decreases as the number of iterations ι increases, but the calculation time increases. To keep calculation times reasonable, a value of 200,000 was chosen for ι.

The local search procedure is only executed if a promising solution is found. If the objective value of a solution is within θ ×100% percent of the best found solution, local search is performed. Again the final objective value found by the algorithm generally decreases as θ increases, and the calculation time increases as θ increases. For θ all 0.01, 0.02,..., 0.1 were tested and θ = 0.06 was chosen.

(18)

parameters that influence the temperature: the initial temperature τ , the cooling parameter c, and the number of iterations without improvement κ, after which the temperature is reheated to the initial temperature and a new solution is chosen to continue from. For τ , values between 100 and 1000, with steps of 100 were tested and τ = 600 was chosen. In our experiments, the solution quality improved as c grows closer to 1, c is set to 0.9999. Finally, κ is set to 500, and a new working solution is accepted if there are κ iterations without improvement.

When reheating, one of the ν best found solutions is chosen as the working solution. The values 1, 2, 3, 4 were tested and ν was set to 2.

For the destroy and repair operators we have the parameters ρ and γ to bring some diversity in operators and not always pick the best choice. Both parameters were tested with values 1, 2, 3, and 4, and for both parameters the value 2 worked best.

There are three parameters that influence the score of the pairs of operators, σ1, σ2, σ3, these are

set to 1, 2, and 2, respectively.

4

Computational experiments

We now describe the extensive computational experiments carried out to assess the performance of our algorithm and to derive important insights for the combined scheduling of trucks and workers in a cross dock with flexible doors. In Section 4.1 we first consider a special case of our problem as described in van Belle et al. [16] and compare our results with those from that article. Then in Section 4.2 we explain how we have generated a set of instances that allows us not only to evaluate the algorithm but also derive insights into the many rich features of our problem. This is followed by a sensitivity analysis and business insights presented in Section 4.3. All the experiments are run on a PC with two Intel Xeon E5 2680v3 CPUs and with 128 GB ram.

4.1 Benchmarks

(19)

number of workers to a sufficiently high number, or by removing all workforce related constraints. We opted for the latter. Furthermore, there is a small difference in assumptions on the processing times of trucks. Van Belle et al. [16] assume inbound doors are free as soon as the correpsonding inbound truck is fully unloaded, while we assume inbound doors become available when all pallets have been transferred from the inbound door. For this experiment, we adjusted our code to exactly match the assumptions used in van Belle et al. [16].

We run the problem on six processor cores with 200,000 iterations, c = 0.99999 and κ = 5000. Problem set 1 of van Belle et al. [16] consists of 270 instances that are solved with three combinations of weighting factors for the cost function: (w1 = 1; w2 = 2), (w1= 1; w2 = 5) and (w1 = 1; w2= 10).

There are 27 problem types that were created from different combinations of three parameters: number of trucks, flow mix, and time windows. Each parameter can take value low (L), medium (M), or high (H). A comparison of our results and those of the tabu search algorithm and CPLEX solutions of van Belle et al. [16] can be found in Tables 1–3. In the first column, the problem types are shown for the three parameters. There are 10 instances for each problem type and the average objective value of these instances is shown in the table. In the next columns the solutions of van Belle et al. [16] using tabu search and CPLEX are shown. Since they use the tabu search solution as initial solution for CPLEX, all solutions found by CPLEX are at least as good as those found by their tabu search algorithm. In column 6, our solutions are displayed, followed by the percentage difference with CPLEX. The eighth column indicates how many of the 10 problem instances have been proven optimal by CPLEX, and the ninth column shows how many of our solutions have the same or a better objective value than that found by CPLEX. Finally, we compare the calculation times in the last three columns. The best found solutions are presented in bold.

As can be seen in Tables 1–3, our algorithm finds the optimal solution in most cases and is in other cases very close to the best found objective value. On average, the solutions found by ALNS are significantly better than those found by the tabu search algorithm of van Belle et al. [16]. Of the 727 solutions that are proven optimal by CPLEX, we find 693 optimal solutions, all other solutions are near optimal.

(20)

higher. It can be seen that our algorithm performs relatively better on large instances compared to the algorithm of van Belle et al. [16]. On average, looking at the worst case solutions we improve the objective by 1.831%, in the average case by 2.663%, and in the best case by 3.293%. Overall, the worst difference with the best known solution is 1.486% and the best improvement is 14.052%.

4.2 Generating new instances

Since no data is available for our problem to test the performance of our algorithm, we propose a set of synthetic instances. A cross dock with an I-shape has been used for all experiments. According to Bartholdi and Gue [2], the I-shape is the best shape for cross-docks with less than 150 doors. We take the distance between doors as one unit of distance, and the distance between opposite sides to be six units of distance, as Bartholdi and Gue [2] state that the typical cross-dock has equally spaced doors on both sides and a width of six doors. Since there is no literature about the time needed to travel between doors, we make the following assumptions to estimate the time to travel one unit of distance. We assume the speed of a forklift is on average 2 m/s and unloading one pallet takes 45 seconds. Since we assumed that unloading a pallet is one time unit, moving one unit of distance translates to approximately 1/30 time unit.

Each instance varies on a number of aspects that influence the difficulty of the problem:

• The number of dock doors.

• The number of trucks is determined by a truck-to-door ratio, inspired by Shakeri et al. [12]. Half of the trucks are inbound trucks and half of the trucks are outbound trucks. For example, if there are 8 dock doors, and the truck-to-door ratio is 8, there are 64 trucks, of which 32 inbound trucks and 32 outbound trucks.

• For the time windows there are three settings, small, medium and high. We assume a full day has 720 time units. We estimate the time a truck would at least need to be processed as three times the unloading time of a full truck, which is 72 time units. The small time windows are between 144 and 216 time units, The medium windows are between 216 and 360 time units, and the large time windows are a full day, i.e. they start at 0 and end at 720.

(21)

it delivers to is chosen from a uniform distribution with with a mean of 4 or 6 both with a range of 5. The outbound trucks are selected randomly. The uniform distribution of the load size has a range of 5 and has an average of 5 or 3. If, after choosing all outbound trucks, one of the outbound trucks does not receive any goods, a load is added from the inbound truck with the least amount of pallets.

• The percentage of flexible doors, the rest of the doors are equally divided between inbound and outbound doors.

4.3 Sensitivity analysis

We now present a summary of the results from solving the generated instances with our algorithm. In order to test the influence of the number of workers on the efficiency of the cross dock, we have solved 10 problems for 1 – 16 workers. These instances have 8 dock doors, 32 trucks, 4 destinations per truck, no flexible doors, and small time windows. In Figure 2 the average objective values are given and it can be seen that, as expected, the objective value decreases as the number of workers increases. Once there are enough workers, the objective value becomes stable. Clearly it matters how many workers there are in a cross dock, and assuming there are infinite workers could strongly underestimate the costs.

(22)

5

Conclusion

In this paper we have introduced the cross dock scheduling problem with a capacitated workforce and flexible doors, where we minimize the total tardiness and transfer distance. As far as we know we are the first to solve the problem of scheduling trucks and workers in a cross dock simultaneously. A mixed integer programming model was formulated and the problem was implemented using a parallel ALNS approach.

Compared to benchmark problems of a special case with infinite workers, we improve solutions of large problems on average by 2.66%. On small problems we find optimal solutions for 693 of the 727 instances that were proven optimal by CPLEX. We have also presented a set of new instances that are solved by the sequential and parallel version of our algorithm. In addition, our algorithm can be used to see the influence of the number of workers on the efficiency of the cross dock.

For future research, it might be interesting to extend the model with capacitated storage. Further-more, it could be made more realistic by including uncertainty of data such as truck arrival time, costs by hours worked by workers, time spent going from task to task.

Acknowledgments

This work was partly funded by the National Sciences and Engineering Research Council of Canada (NSERC) under grant 20/4-05764. This support is greatly acknowledged.

References

[1] M.T. Assadi and M. Bagheri. Differential evolution and population-based simulated annealing for truck scheduling problem in multiple door cross-docking systems. Computers & Industrial Engineering, 96: 149 – 161, 2016.

[2] J.J. Bartholdi and K.R. Gue. The best shape for a crossdock. Transportation Science, 38(2):235 – 244, 2004.

[3] P. Bodnar, K. Azadeh, and R. de Koster. Scheduling trucks in a cross-dock with mixed service mode dock doors. Transportation Science, 51(1):112 – 131, 2015.

(23)

[5] N. Boysen, M. Fliedner, and A. Scholl. Scheduling inbound and outbound trucks at cross docking terminals. OR Spectrum, 32(1):135 – 161, 2010.

[6] P. Buijs, I.F.A. Vis, and H.J. Carlo. Synchronization in cross-docking networks: A research classification and framework. European Journal of Operational Research, 239(3):593 – 608, 2014.

[7] Y. Cohen and B. Keren. Trailer to door assignment in a synchronous cross-dock operation. International Journal of Logistics Systems and Management, 5(5):574 – 590, 2009.

[8] V. C. Hemmelmayr. Sequential and parallel large neighborhood search algorithms for the periodic location routing problem. European Journal of Operational Research, 243(1):52 – 60, 2015.

[9] D. Hermel, H. Hasheminia, N. Adler, and M.J. Fry. A solution framework for the multi-mode resource-constrained cross-dock scheduling problem. Omega, 59, Part B:157 – 170, 2016.

[10] A.L. Ladier and G. Alpan. Cross-docking operations: Current research versus industry practice. Omega, 62:145 – 162, 2016.

[11] D. Pisinger and S. Ropke. A general heuristic for vehicle routing problems. Computers & Operations Research, 34(8):2403 – 2435, 2007.

[12] M. Shakeri, M.Y.H. Low, S.J. Turner, and E.W. Lee. A robust two-phase heuristic algorithm for the truck scheduling problem in a resource-constrained crossdock. Computers & Operations Research, 39 (11):2564 – 2577, 2012.

[13] M. Shakeri, M.Y.H. Low, S.J. Turner, and E.W. Lee. An efficient incremental evaluation function for optimizing truck scheduling in a resource-constrained crossdock using metaheuristics. Expert Systems with Applications, 45:172 – 184, 2016.

[14] A. Stenger, D. Vigo, S. Enz, and M. Schwind. An adaptive variable neighborhood search algorithm for a vehicle routing problem arising in small package shipping. Transportation Science, 47(1):64 – 80, 2013. [15] J. van Belle, P. Valckenaers, and D. Cattrysse. Cross-docking: State of the art. Omega, 40(6):827 – 846,

2012.

[16] J. van Belle, P. Valckenaers, G. van den Berghe, and D. Cattrysse. A tabu search approach to the truck scheduling problem with multiple docks and time windows. Computers & Industrial Engineering, 66(4): 818 – 826, 2013.

[17] H. Yan and S. Tang. Pre-distribution and post-distribution cross-docking operations. Transportation Research Part E: Logistics and Transportation Review, 45(6):843 – 859, 2009.

(24)

A

Results

Table 1: Results of set 1 of van Belle et al. [16] with w1 = 1 and w2= 2.

Problem type Objective value % gap CPLEX equal or better Time (s)

(25)

Table 2: Results of set 1 of van Belle et al. [16] with w1 = 1 and w2= 5.

Problem type Objective value % gap CPLEX better or equal Calculation time (s)

TS1 [16] MIP [16] ALNS CPLEX optimal than CPLEX TS1 [16] MIP [16] ALNS L L L 1076.75 1076.75 1076.75 0.000 10 10 0.17 0.07 5.40 L L M 1217.28 1217.28 1217.28 0.000 10 10 0.16 0.14 5.39 L L H 1839.09 1839.09 1839.09 0.000 10 10 0.16 0.17 5.30 L M L 1014.15 1014.15 1014.15 0.000 10 10 0.15 0.24 6.13 L M M 1354.05 1354.05 1354.05 0.000 10 10 0.16 0.27 6.12 L M H 1798.66 1798.66 1798.66 0.000 10 10 0.15 0.29 5.84 L H L 1387.71 1387.71 1387.71 0.000 10 10 0.17 0.42 8.10 L H M 1212.21 1212.21 1212.21 0.000 10 10 0.16 0.43 7.38 L H H 2076.65 2076.65 2076.65 0.000 10 10 0.15 0.52 7.18 M L L 1345.74 1345.74 1345.74 0.000 10 10 0.45 0.42 10.69 M L M 1989.14 1988.24 1988.24 0.000 10 10 0.43 0.71 10.53 M L H 2680.82 2680.82 2680.82 0.000 10 10 0.43 3.05 10.38 M M L 1126.52 1125.32 1125.32 0.000 10 10 0.44 1.41 14.60 M M M 2088.54 2088.54 2088.54 0.000 10 10 0.43 4.44 13.76 M M H 3152.73 3152.73 3153.20 0.0325 10 9 0.45 193.11 14.14 M H L 1728.04 1728.04 1728.04 0.000 10 10 0.43 5.55 16.49 M H M 2399.15 2396.95 2396.95 0.000 10 10 0.43 26.08 16.58 M H H 3748.65 3743.35 3743.35 0.000 10 10 0.49 1150.63 17.36 H L L 2060.98 2059.08 2059.08 0.000 10 10 1.03 1.13 18.45 H L M 2490.86 2490.86 2491.16 0.012 10 9 0.91 221.26 17.91 H L H 4075.92 4064.11 4068.50 0.108 10 5 1.08 3770.48 19.46 H M L 2011.95 2010.55 2010.65 0.005 10 9 1.07 172.27 26.57 H M M 2321.45 2320.65 2320.65 0.000 9 10 1.06 847.88 24.08 H M H 4367.17 4352.30 4355.59 0.076 3 4 1.08 5494.61 24.67 H H L 2571.85 2567.01 2567.04 0.001 10 9 1.02 502.40 32.27 H H M 3632.16 3631.16 3631.26 0.002 5 9 1.10 4487.89 33.00 H H H 5428.29 5420.66 5420.04 -0.012 0 7 1.02 7200.97 29.24 average

Table 3: Results of set 1 of van Belle et al. [16] with w1 = 1 and w2= 10.

Problem type Objective value % gap CPLEX better or equal Calculation time (s)

(26)

Referenties

GERELATEERDE DOCUMENTEN

1) Standardized products and unloading methods in the supply chain. 2) Reliability and efficiency of suppliers. 3) Reliability and efficiency of customers. 4) Expertise

The program aimod at resolving the dysfunctional effects of this method of organizadon by creating `cells', i.e., teams of workers responsible for a rounded-0ff part of the

We simulate the general inbound process (receive, check, and put away activity) at the distribution centre of Wavin for products from own factories, internal suppliers, and

Abstract— Hybrid Electric Vehicles (HEVs) enable fuel sav- ings by re-using kinetic and potential energy that was recovered and stored in a battery during braking or driving down

Develop and improve communications strategy Develop and implement product strategy Integrate and enhance TeleAid Integrate field staff into sales processes Margin, price

Indien op basis van een jaarlijkse rentevoet van 5% de netto-kosten voor de overheid worden berekend en indien 15 jaar subsidie wordt betaald bedragen de kosten voor het subsidiëren

Voor het bereiken van een redelijke mate van succes bij de studie van de middelbare-schoolwiskunde wordt geen andere vorm van in- telligentie vereist dan die, welke nodig is voor

gedimensioneerd qua lengte waardoor de reactiekrachten zo laag mogelijk blijven. Door het gebruik van twee actuatoren zal het in- en uitschuiven geen problemen opleveren. De