{'fraction_non_alphanumeric': 0.03247400255413503, 'fraction_numerical': 0.013051349341117364, 'mean_word_length': 4.453696617174345, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Formulating and solving integrated order batching and routing in multi-depot AGV-assisted mixed-shelves warehouses

Different retail and e-commerce companies are facing the challenge of assembling large numbers of time-critical picking orders that include both small-line and multi-line orders. To reduce unproductive picker working time as in traditional picker-to-parts warehousing systems, different solutions are proposed in the literature and in practice. For example, in a mixed-shelves storage policy, items of the same stock keeping unit are spread over several shelves in a warehouse; or automated guided vehicles (AGVs) are used to transport the picked items from the storage area to packing stations instead of human pickers. This is the first paper to combine both solutions, creating what we call AGV-assisted mixed-shelves picking systems. We model the new integrated order batching and routing problem in such systems as an extended multi-depot vehicle routing problem with both three-index and two-commodity network flow formulations. Due to the complexity of the integrated problem, we develop a novel variable neighborhood search algorithm to solve the integrated problem more efficiently. We test our methods with different sizes of instances, and conclude that the mixed-shelves storage policy is more suitable than the usual storage policy in AGV-assisted mixed-shelves systems for orders with different sizes of order lines (saving up to 62% on driving distances for AGVs). Our variable neighborhood search algorithm provides optimal solutions within an acceptable computational time.


Introduction
The most important and time-consuming task in a warehouse is the collection of items from their storage locations to fulfill customer orders. This process is called order picking, which may constitute about 50-65% of operating costs. Therefore order picking is considered the highest-priority area for productivity improvements (see De Koster et al. (2007)). In a traditional manual order picking system (also called a picker-to-parts system), the pickers spend 50% of their working time on the task of walking (see Tompkins (2010); for an overview of manual order picking systems see De Koster et al. (2007)). The unproductive working times require the picker-to-parts system to have a large workforce, especially for companies which have millions of small-sized items in large warehouses, such as the retailers Amazon, Alibaba, Zara, Zalando and Walmart. Many of them provide both brick-and-mortar stores and online shops to create a seamless shopping experience for customers (omnichannel flexibility). Due to the diversity of online shops, we concentrate on small-sized orders with different order lines. Especially during the COVID-19 pandemic, online grocery sales are growing threefold faster (see Fabric (2020)). There are increasing demands for alternative warehousing systems to increase the efficiency of order picking, for example, robot-based compact storage and retrieval systems and robotic mobile fulfillment systems (see more details in Azadeh et al. (2019)). Here we consider a relatively new warehousing concept that does not use expensive fixed hardware and can be easily and quickly implemented, called AGV-assisted picking (see Boysen et al. (2019), Azadeh et al. (2019)).

AGV-assisted picking systems
As described in Azadeh et al. (2019), there are different variants of this type of system. In this paper, we concentrate on the one that has been marketed to the warehousing industry, such as Locus Robotics, 6 River Systems and Fetch Robotics (see Figure 1). In such systems, each human picker works at his/her working area in the storage area (containing shelves with items). For example, in Figure 2 1 works in the upper area of the storage area while picker 2 works in the lower area. Each mobile robot (called a cobot) leaves its packing station (also called a depot), goes automatically to a pick location in the storage area and waits for a human picker to arrive. The picker identifies and picks up the ordered items from shelves and puts them into bins carried by the cobot (one bin is used to temporarily store an order); after that, the cobot goes to its next picking location. The load of each cobot is limited. After collecting, each cobot goes back to its packing station to drop off the loaded bins, and the human packer at that station packs the collected items. Each cobot has a dedicated packing station and it is charged there. In the example in Figure 2, cobot 1 leaves packing station a and goes firstly to pick location 1 to wait for picker 1 to load items; after that, it goes to pick location 2 to wait for picker 2 to load items and returns to packing station a. If there is another cobot in front of station a, then it should wait in a queue in front of the station. The explanation of all components in such a picking system can be found in Table A.8. In different real-world warehouses, these depots might vary slightly as shown in Figure 2. For example, the depots might be drop-off locations, where the bins are put onto a conveyor system to transport them to packing stations. But each cobot still has a dedicated depot, which is its charging location. In the rest of the paper, the terms depot and packing station are synonyms. This system is called a follow-pick system in Lee & Murray (2019), and Boysen et al. (2019) call this model of operation the free-floating policy. Although AGV-based picking systems are often applied for heavy and bulky items, there are also applications for small-sized items (see Boysen et al. (2019)). The latter applications are also a focus of this paper. In practice, AGV-assisted picking systems are becoming increasingly popular, since adding AGVs to an existing picker-to-parts system barely alters the basic fulfillment processes (easy and quick implementation). More than 80% of all warehouses in Western Europe still follow the traditional picker-to-parts setup (see De Koster et al. (2012)). The other automated systems require, for example, expensive fixed hardware, such as automated storage systems in robotbased compact storage and retrieval systems. An AGV-assisted system is also easily scalable by adding or reducing pickers and AGVs to adapt to varying workloads, for example due to seasonal changes in customers' orders, such as end-of-season sales.
As described in Azadeh et al. (2019) and Boysen et al. (2019), AGV-assisted picking is a relatively new concept. The only publication about the free-floating system is in Lee & Murray (2019). They modeled the routing problem to support the cooperation of picker robots with transport robots and compared this with the cooperation of human pickers with transport robots (follow-pick). They concluded that human pickers are more suitable for identifying and picking up items. They also analyzed the relationship between layout configuration and robot system parameters. In contrast to that paper, we concentrate on integrated batching and routing in a mixed-shelves follow-pick system.

Mixed-shelves picking systems
As described in Boysen et al. (2019) and Weidinger et al. (2019), mixedshelves storage has been applied by many large-sized facilities in e-commerce companies, for example in the distribution centers of Amazon Europe and fashion retailer Zalando. In such storage, items of the same stock keeping unit (SKU) are spread over the shelves, so there are always some items of that SKU close by for picking. The main advantage of such storage is that it reduces unproductive working time. That is supported by Weidinger et al. (2019) for traditional manual systems and Boysen et al. (2017) for robotic mobile fulfillment systems. However, the literature shows that this storage is more suitable for online companies, which usually have many small-line orders (or small orderline demands). For cases with a large demand per SKU or multiple order lines per order, several storage locations might need to be visited by pickers to finish one order.
We apply mixed-shelves storage in an AGV-assisted picking system (called a multi-depot AGV-assisted mixed-shelves system) for picking both single-line and multi-line small-sized orders and compare this with the reference storage policy, called dedicated storage. In the dedicated storage policy, items of the same SKU are stored in only one shelf.

Operational decision problems
The problems that occur in a multi-depot AGV-assisted mixed-shelves system are mostly similar to the problems in traditional manual order picking systems, including strategic (such as layout planning), tactical (such as zoning and storage assignment) and operational problems (batching, routing and job assignment) (see overview in Van Gils et al. (2018) for the traditional manual order picking systems). In addition, we have several depots in our system, and each cobot has its dedicated depot, i.e. it leaves from its depot and goes back to that depot. Therefore, we also need to decide in which depot an order will be handled to minimize driving distances while ensuring balanced batches among all depots (this will be discussed further in Section 2).
We consider in this paper two integrated operational problems in a multidepot AGV-assisted mixed-shelves system: customer orders are combined in several pick rounds (batches) in order batching by deciding from which depot a batch is leaving, while the sequence of storage locations that cobots should visit to load all retrieved items from human pickers in each batch is determined in routing.

Literature review
In this subsection, the literature of picker routing in manual mixed-shelves warehouse and integrated order batching and routing will be described.

Picker routing in mixed-shelves picking
As shown in Weidinger et al. (2019), picker routing in a mixed-shelves warehouse is much more complex than in traditional environments: Multiple orders are concurrently picked by each picker (in our case: cobot), many alternative depots (in our case: packing stations) are available, and items of the same SKU are available in multiple shelves. Daniels et al. (1998) was the first publication to integrate the selection of alternative storage positions into picker routing. The same problem was also addressed in Weidinger (2018) for rectangular warehouses, and integrating alternative pick locations was proven to make this problem strongly NP-hard.
The mixed-shelves storage in Weidinger et al. (2019) is similar to the environment we consider, including: • Items of the same SKU are available in multiple shelves.
• The cobot / picking cart is able to carry multiple bins for different orders concurrently.
However, we do not have the same meaning of depots as in Weidinger et al. (2019). They define depots as access points to the conveyor system, not the leaving and return locations of cobots. So in our case we have dedicated assignment of cobots to depots. Each cobot begins from its depot and ends at the same depot. This property makes our formulation similar to the vehicle routing problem with multiple depots. An overview of multi-depot vehicle routing problems can be found in Montoya-Torres et al. (2015). It is known that multi-depot vehicle routing problems are proven to be NP-hard (Garey & Johnson (1979)). And we consider multiple pickers (in our case: cobots), rather than one picker as in Weidinger et al. (2019). The following problems are mentioned in Weidinger et al. (2019) for considering multiple pickers.
• They block each other in front of shelves (in this paper we assume that the aisles are wide enough for at least two (even three) cobots operating side by side (see Lee & Murray (2019) for the same assumption)).
• They block each other in front of depots (there is a queue in front of each depot; furthermore, due to the short drop-off time by removing bins from cobots, we assume that the blocking is minimal).
• They influence each other's inventory levels (this will be formulated in our model, and that might increase the complexity of the model).

Integrated batching and routing
Due to the similar time horizon of the batching and routing decisions and the strong relationship between them, the integration of them is extensively studied in the literature; see an overview in Van Gils et al. (2019). The efficiency of the integration compared with the sequential approach to both of these problems is already shown in previous papers, such as in Van Gils et al. (2019). Therefore, we do not focus on such comparison in this paper.
The differences in our problem from the existing integrated batching and routing problems for the traditional manual picking systems are summarized as follows.
• Due to mixed-shelves storage, the items of an SKU are available in several locations (shelves) (mixed storage, see third column of Table 1). Therefore, the picking locations of an order should be determined during routing.
In the first integrated model from Won & Olafsson (2005), they formulate it as the integrated bin packing and traveling salesman problem. The threeindex formulations with sub-tour elimination constraints are widely used in the literature (see Table 1). It is worth mentioning that , Scholz et al. (2017)   The two-commodity network flow formulation for solving the traveling salesman problem was first introduced by Finke (1984). This formulation was proposed by Baldacci et al. (2004) to solve the capacitated vehicle routing problem and was extended by Ramos et al. (2020) to solve the multi-depot vehicle routing problem, and it was shown that the flow formulation provides better performance to achieve lower gaps within a smaller computational time. In our work, we extend the formulation in Ramos et al. (2020) for integrating vehicle routing with order batching in a mixed-shelves warehouse. In other words, we allow each location to be visited more than once and the demand in each location is unknown (but the maximum is given), and we enable batching of orders. More about this formulation can be found in Subsection 3.2.
Due to the complexity of the integration, the problem is solved in the literature mostly using metaheuristics (see sixth column of Table 1). There are two main reasons why we apply variable neighborhood search to this integrated problem. First, Li et al. (2017) mentioned that there are several problems with existing applied metaheuristics in the literature for the integrated batching and routing problem, such as the bad performance caused by not using the full capacity of the vehicle in the batching process, or the long computational time. It is not clear which of the heuristics proposed so far in the literature is the best one. Second, our mixed-shelves storage increases the complexity of the routing problem, and variable neighborhood search has been successfully applied to solve vehicle routing problems, such as large-scale capacitated vehicle routing in Kytöjoki et al. (2007).

Contributions and paper structure
Based on the literature review in the previous subsection, we summarize the main contributions of this paper as follows: • We formulate the first integrated batching and routing problem in a multidepot AGV-assisted mixed-shelves warehouse with a new two-commodity network flow model and compare it with the extended classical three-index model.
• Due to the high complexity of the integration, a novel variable neighborhood search is developed to provide good solutions within shorter computational times.
The remainder of this paper is organized as follows. Section 2 describes the assumptions we used, while Sections 3 and 4 describe the different mathematical formulations and implemented metaheuristic for our integrated order batching and robot routing respectively. Computational results are described in Section 5. Finally, Section 6 presents conclusions and opportunities for future research.

Assumption for the mathematical models
The following assumptions are made for the formulation of the integrated problem in Section 3.
Objective. We use the objective of minimizing distances for the reason that this objective allows us to simplify our integrated problem in such a way that the waiting time of a cobot for a human picker to arrive at the given picking location can be ignored. Therefore, the cobots act like classical pickers in a warehouse, i.e. they move from their depots to different picking locations to collect items for orders. In our model, we don't analyze the cooperation between human pickers and cobots at picking locations. This objective is also widely used in the literature for the integrated batching and routing problem in traditional manual systems (see fifth column of Table 1). It is worth mentioning that this assumes that minimizing distances has the same meaning as minimizing total picking time in the literature (Li et al. (2017), Tsai et al. (2008) and Won & Olafsson (2005)). This is supported by the assertion in De Koster et al. (2007) that the travel time is an increasing function of the travel distance, so that minimizing the latter is considered a primary objective in warehouse design and optimization. However, this is no longer true in our problem, if we consider the waiting time of a cobot for a human picker in the mixed-shelves storage. The waiting time of a cobot for a human picker in the storage area can include the travel time of the human picker to the pick location and the waiting time in the queue (if other cobots arrive earlier than the current one and the picking has not proceeded, they automatically form a queue at the pick location). A pick location with a shorter driving distance does not mean that the picking time at that pick location is shorter in our problem. Another pick location with items of the same SKU with a longer driving distance might be preferred if the waiting time of the cobot is shorter.
Pickers in the storage area. We don't analyze the number of pickers and size of their corresponding working areas (zones).
A given set of orders. The small-line and multi-line orders of customers are given as input for the models. No new incoming orders are considered.
Demand nodes. In order to formulate the problem as a vehicle routing problem, we need to define a set of demand nodes. So it is possible to define each item as a node. But there are a large number of nodes, and all items on one shelf share the same distances to items on another shelf. Therefore we use a shelf as an aggregated node for all items on it.
Picking list of an order. Each customer's order includes several SKUs with their given ordered quantities. Based on the property of mixed-shelves storage, items of the same SKU might be picked from different shelves. To simplify the modeling, we divide customer orders into a picking list. For example, we have order 1, including two units of SKU a, one unit of SKU b and three units of SKU c: o 1 = (a, 2), (b, 1), (c, 3) (SKU, ordered quantity); then we have a picking list for o 1 : a 1 , a 2 , b 1 , c 1 , c 2 , c 3 in our models. In this way, two items of SKU a can be picked from different shelves.
No charging. We assume that all cobots we send out have enough remaining percentage of battery life for one tour. When a cobot visits its depot, it will be re-charged at a rate per unit of time.
Aisle congestion. We assume that the aisles are large enough for two or even three cobots moving side by side (the same assumption is common in the literature, such as in Lee & Murray (2019)), so the aisle congestion is minimal, since one cobot can go around the boundaries (such as: picker, another cobot).
Load capacity of batches. In integrated batching and routing, we can determine a tour for a cobot for each batch. So the load capacity of each batch is equal to the load capacity of a cobot. We assume that the payloads of all cobots are the same.
Same number of cobots in each depot. We assume that the same number of cobots are available in each depot.
A bin/sub-bin for each order. Each cobot can carry several bins, and a bin can be separated into several small sub-bins for small-sized items (see, for example, Locus Robotics in Figure 1). A human operator in a depot can rearrange the bins by removing or adding some divisions before the cobot leaves the depot. The rearrangement depends on the sizes of the orders to be transported in the next batch by this cobot. Due to the possibility of this rearrangement, we assume that the batching is limited by the load capacity of a cobot, not by the number of orders/bins as in Valle et al. (2017).
Balanced batches of different depots. We have multiple depots in this work. Due to our objective of minimizing distances, it is possible that we have extremely unbalanced numbers of batches among depots. This is caused by the placement of depots and the shelves that include ordered items. For example, where ten batches are assigned to depot a while only one batch is assigned to depot b, since most of the required shelves are directly in front of depot a. This assignment reduces the distances; however, it causes unbalanced batches among stations and consequently a bad makespan for a given set of orders. The main reason is that the more batches are assigned to one depot compared to others, the more waiting time of the human packer is needed at that depot for additional batches (we assume the same number of cobots for each depot), and also the more preparation time (e.g. labeling) is needed for each additional batch. Furthermore, we don't use the balanced distribution of the number of orders among different depots to achieve good makespan, since we have small-line and multi-line orders. For example, we have two depots (a and b; each owns one cobot), six orders with respective weights 4, 1, 1, 1, 1 and 1 (the first one with four items while the others with one item); the capacity of each batch is limited to 5 of the total weight. We assign the first three orders to depot a and the later three ones to depot b to achieve balanced distribution of the number of orders among two depots. Two batches are needed leaving from depot a, and one is needed leaving from depot b. The human packer at depot a needs to wait the second batch. If we use balanced batches instead, we will assign the first order to depot a and all others to depot b, and we need only one batch leaving from each depot. As shown in this example, if we have items with similar weights, we can get a similar number of items within each batch (5 items at depot a vs. 4 items at depot b) if they are as close to capacity as possible.
No refill in parallel to picking. We assume that our optimization begins after refill operations and the inventory has enough items for picking.

Mathematical model for integrated order batching and cobot routing
Our integrated order batching and cobot routing can be reduced to the capacitated vehicle routing problem if there is only one depot, with each shelf including only items of one SKU, single-line orders (each with a distinct SKU) and a given number of batches. We assume each shelf corresponds to a customer and each batch corresponds to a vehicle, so each customer is assigned to exactly one vehicle. As the capacitated vehicle routing problem is known to be NP-hard (see, for example, Baldacci et al. (2007)), so is our problem.
In this section, we firstly model the integrated order batching and routing problem as a three-index formulation in Subsection 3.1, and then as a twocommodity network flow formulation in Subsection 3.2.

Three-index formulation
The following model is based on the integrated batching and routing in Cheng et al. (2015). In contrast to that, we consider mixed-shelves storage and multiple depots. We need one more index for depots in our model so that we can know from which depot a batch begins. Note that the batches leaving from a depot obtained from our model are independent of each other, i.e. the sequence of batches is irrelevant. So, a set of cobots can be sent out to collect items.
The sets, parameters and variables are as follows: Sets: V Set of nodes, including shelves V S (including at least one ordered item) and depots Maximum payload of a cobot w p Weight of item p ∈ P n ps Number of items sharing the same SKU as the physical item p at shelf node s ∈ V S Decision variables: As explained in Section 2, we want to have a balanced number of batches among depots. Therefore, we can calculate the smallest upper bound on the number of batches |B d | for all depots d as follows: It is possible that a batch leaving from one depot will not be used according to our minimization objective function. It is also possible that there will be no feasible solutions to achieve |B d |. In this case, the number of batches will be increased by one or two, etc until we get a feasible solution.
Goal: Minimizing traveled distances of all batches A. Same constraints as in classical multi-depot vehicle routing problems Constraint set (3) indicates the flow conservation and ensures that each batch leaves its depot once at the most, and if it leaves its depot, it should come back to that depot at the end of the tour. Furthermore, the capacity of each batch is limited in constraint set (4). Constraint set (5) eliminates subtours. Similar constraints can be found in, for example, Ramos et al. (2020) for multi-depot vehicle routing problems.

B. Constraints about order batching
Each item must be assigned to a batch. Each item in the picking list should be collected exactly once in one batch in constraint set (6).
No splitting. Constraint set (7) ensures that all items for an order are collected in precisely one batch assigned to a cobot.
Set of constraints due to mixed-shelves storage. Constraint set (8) ensures that if one item p in shelf s is collected in batch b, shelf s should be visited in that batch. Constraints (9) ensure that the available stock of items in a shelf is not exceeded in all batches.

D. Definition of variables
The binary definitions of variables are given in constraint sets (10)-(12).

Two-commodity network flow formulation
The model about the two-commodity network flow formulation is based on the formulation presented by Ramos et al. (2020) for solving the multi-depot vehicle routing problem. Constraint set (3) and the constraint sets about order batching ((6)-(12)) are extended with a set of copy depots and new flow variables. We will show you an example to illustrate the idea of the flow formulation. First we need some additional definitions of sets, parameters and variables. Additional sets: Real depot of the copy depot i ∈ V D' Additional decision variables: A flow variable representing the batch load when the path from i to j is travelled in the b-th batch leaving from depot d. The flow y jibd represents the current empty space in the b-th batch leaving from depot d. Example. Figure 3 shows an example of batch I leaving from depot a limited by the batch capacity c I = 1. Three orders are assigned to that depot. They include different items, whose sizes are equal (0.3). The items sharing the same SKU are illustrated with the same color and shape. For example, the items indicated by a green rectangle are included in orders 2 and 5, and they are stored in shelves 1 and 3. In the flow formulation, the route for batch I is defined by two paths: one from the real depot a to the copy depot a (a → 1 → 3 → a ), defined by y ijrb (representing the batch load); while the reserve path from the copy depot to the real depot (a → 3 → 1 → a) is defined by y jibd (representing the empty space in the batch). For example, the flow y a1Ia indicates that batch I leaves the depot with a load equal to the total weights of the three picking items, 0.9; while the flow y a 3Ia = 1 means that the batch arrives empty at the depot after dropping off items. For each edge (i, j) of the route within a batch b leaving from depot d, we have y ijbd +y jibd = c, for example, y 13Ia +y 31Ia = 0.3+0.7 = 1.

Goal: Minimizing traveled distances for all batches
The objective function (2) is the same as in F(3.1), while some constraint sets are retained as in F(3.1), including (3) and (6)-(12). For each batch, the inflow minus outflow at each shelf node is equal to twice the weights of picked items on that shelf (see constraint set (13)). The total outflow from the real depots for all batches indicates the total load, which should be equal to the weight of all items (see constraint (14)), while the total inflow to the real depots should be smaller than or equal to the residual capacity of the used batches (see constraint (15)). Constraint set (16) ensures that the outflow of each batch beginning with a copy depot i is less than or equal to that batch's capacity. Constraint set (17) ensures that the inflow plus outflow of each node equals the capacity of the batch. Constraint set (18) guarantees that the flow variable of batch b from shelf s is set to zero; if not, a single item p from shelf s is picked in batch b leaving from depot d. Each flow variable is limited by the batch capacity, i.e. M = c. Finally, constraint sets (19) and (20) jointly ensure that a batch cannot leave and return to a copy/real depot other than its home depot. Constraint set (21) defines valid inequalities to tighten the formulation by reducing the search space. These constraints ensure that the remaining batch capacity before reaching shelf s is larger than or equal to the weights of all picked items at shelf s. Constraint set (22) defines new linear flow variables.

Variable neighborhood search algorithm for integrated order batching and cobot routing
As described before, integrated batching and routing is very complex, so it is solved in the literature mostly using metaheuristics to get a good solution within a reasonable computational time (see Table 1, the last column). In this work, we use variable neighborhood search (VNS) to solve this integrated problem. Variable neighborhood search is a relatively new metaheuristic (proposed by Mladenović & Hansen (1997)), and its basic idea is a systematic change of neighborhood both within a descent phase to find a local optimum and in a perturbation phase to get out of the corresponding valley (according to Gendreau & Potvin (2010)).
Algorithm 1: Steps of the basic VNS (based on Mladenović & Hansen (1997)) 1 Initialization. Select the set of neighborhood structures N κ (κ = 1, ..., κ max ) that will used in the search; find an initial solution x; choose a stopping condition 2 Repeat the following until the stopping condition is met: 1. Set κ ← 1; 2. Repeat the following steps until κ = κ max : (a) Shaking. Generate a point x at random from κ th neighborhood of x (x ∈ N κ (x)); (b) Local search. Apply some local search method with x as initial solution; denote with x the so obtained local optimum; (c) Move or not. If the local optimum x is better than the incumbent, move there x ← x , and continue the search with N 1 (κ ← 1); otherwise, set κ ← κ + 1 The steps of the basic VNS are shown in Algorithm 1. Here, N κ (κ = 1, ..., κ max ) is a set of neighborhood structures, which we will explain together with shaking in Subsection 4.2. The stopping condition may be, for example, the number of iterations (γ) without improvement of x or the maximum computational time t max . It is worth mentioning that the algorithms we implemented in this section work for both mixed-shelves and dedicated storages. Therefore, our algorithms can also be applied to the integrated batching and routing problem for the traditional manual picking systems.
In the following subsections, the implementation of each part of VNS for solving our integrated problem is described, including the building of an initial solution (Subsection 4.1), the shaking phase with the definition of the neighborhood structure (Subsection 4.2) and the local search methods (Subsection 4.3).

Initial solution
In this subsection a greedy heuristic is presented in Algorithm 2, which generates an initial solution x for our integrated problem. First, the algorithm AssignOrdersToDepots determines the assignment of orders o to depots d, while keeping the number of batches among depots balanced (see line 5 in Algorithm 2). For this algorithm, a set of distance metricsD o is needed, which we will describe together with algorithm 3. The set of orders assigned to the Algorithm 2: Greedy algorithm to generate an initial solution Then, for each depot the orders assigned to it are bundled up into batches. This is done using the algorithm AssignOrder-sToBatchesAndTours (line 7), which determines the set of batches B d and the corresponding routes for a given depot d. The solution x is a collection of all batches leaving from all depots and the corresponding routes for visiting shelves in batches.

Assignment of orders to depots
Algorithm 3: Greedy assignment of orders to depots Algorithm 3 assigns orders to depots. For these types of assignment prob-lems, it is common to first consider the distance from the object to be assigned (orders in our case) to all potential depots (Giosa et al., 2002). For our problem, this is already a challenge as each order consists of several items; further, each item can be stored in different shelves. Hence, the distance from an order to each depot is not well defined. To define a hypothetical loss for a given depot, we take for each item the distance of the shelf storing the item which is closest to the depot. These distances are then added up over all items of the order to get the hypothetical distance from that order to a depot. This definition of the distance from an order to a depot is formalized in Equation (23): where we writed to indicate the hypothetical nature of the distance between order o and depot d. These values are determined in line 4 of Algorithm 2. Moreover, we need to define the weights of orders as the sum of weights of all their items (line 2) together with the total weight of all orders assigned to each depot (line 3) in order to maintain a balance in the number of batches per depot. Given the distances for all possible combinations of (o, d), we follow the approach of Giosa et al. (2002) and calculate for each order the potential savings of assigning that order to its closest depot instead of the second closest (line 4 of algorithm 3). This is done in accordance with the following equation: whereD o with subscripts (1) and (2) denotes the first-and second-order statistics respectively, i.e.D o (2) denotes the second smallest andD o (1) the smallest distance inD o .
The savings are then used to prioritize orders, i.e. to determine the sequence in which the orders are assigned to the depots (line 5). Due to the balancing constraint, orders cannot be assigned arbitrarily to stations, but must be assigned such that the number of batches at each station is as balanced as possible. Hence, orders where the second-best choice would be far worse than the best choice are prioritized and therefore assigned prior to orders where the difference is not too large. After choosing a depot d * for order o in line 7, order o can be assigned to a station in line 9 if the number of batches required to fulfill all assigned orders to this depot including o is less than or equal to |B d * | as defined in Equation 1.
If an order cannot be assigned to the station closest to it due to the balancing constraint, the station is removed from the set of possible stations for that order (see line 11) and a new savings value for that order has to be determined. As the new savings value might affect the precedence of the remaining orders, this is done by recursively calling function AssignOrdersToStations with the reduced set of stations per order and only for the orders that are not assigned yet (line 12). This procedure is repeated until all orders are assigned.

Order batching and routing
Algorithm 4: Create a set of batches and tours for orders handled in depot d Result: Set of batches B d with the size of batchnr In Algorithm 4, the orders o ∈ O d of a depot d ∈ V D are assigned to batches in compliance with the capacity restrictions while also forming tours. To initialize a new batch (see line 4), the initial weight, tour and set of orders in the batch, O temp , are defined. Moreover, a set to store infeasible orders that do not fit in the batch, O infeas , is initialized. In line 6, an order from the set of unassigned and feasible orders is selected by calculating the minimum possible distance from all items of o to any item of the orders in the batch. Accordingly, the function M inDist(·) implements the following equation: where a random order is chosen if O temp is empty. If the determined order still fits into the batch, it is added to it (lines 7-9); otherwise it is added to the set of infeasible orders O infeas (lines 12-13). If the order is added to the batch, its items need to be assigned to a shelf for pickup. Since an item can be stored in many shelves, the shelf that minimizes the distance to any of the shelves visited in the current batch is determined. Therefore, in line 10, each time a new order is assigned to a batch, the tour of this (partial) batch is updated using the cheapest insertion procedure (see e.g. Archetti et al. (2003)), which n ps * ← n ps * − 1 // decrease supply by one 15 end 16 return tour we describe in algorithm 5. This algorithm determines, for each new item that has to be added to the current tour and for each shelf this item is stored in, the position in the tour where the distance added is minimized (see line 6). The additional distance created by adding a new node s between nodes s j−1 and s j can easily be calculated using the formula in line 7. In the end, the item is picked up at the shelf s * which adds the least distance to the current tour (determined in line 9), and this shelf is inserted at the previously determined minimum distance position (in line 13).

Shaking
Algorithm 6: Shaking 10 else // add orders to a existing batch After an initial solution is obtained using the algorithms described in the previous subsection, its neighborhood can be searched for better solutions. The Shaking operator is mainly used to search increasingly distant neighborhoods of the current incumbent solution, which are then searched for a local optimum (Mladenović & Hansen, 1997). The Shaking operator helps escaping local optima by searching a larger neighborhood with different basins. If this neighborhood still does not yield a better solution, an even larger neighborhood is searched until an improvement is made or the most distant neighborhood N κ is reached.
To search larger neighborhoods, this work proposes a destroy-and-repair operator in Shaking (see Algorithm 6). During the destroy phase, κ batches are selected and destroyed (see line 4). The selection of a batch for destruction happens through Algorithm 7, which is described later.
The repair phase in Algorithm 6 then reassigns the orders in the destroyed batches to the remaining batches where the additional weight opposed by the new order cannot violate the capacity constraints (see line 8). In a case where an order in a destroyed batch cannot be reassigned to any existing batches due to the capacity constraint, it will be put in a new batch b |B d |+1 (see line 9). Otherwise, it will be assigned to a random batch that it still fits into (see lines 11-12).
Every time an order is added to a batch, the GreedyTour algorithm is applied in order to assign shelves to items and update the tour in a greedy manner (see line 14).
If the number of batches at any depot is higher than the minimum possible number of batches |B d | * (see Equation (1)), then we will try to reduce the total number of batches through ReduceBatches in Algorithm 8, which was originally proposed by Alvim et al. (1999) (see lines 16-17 of Algorithm 6).
Algorithm 7: Eliminate a random batch During the destroy phase, Algorithm 7 determines whether there exists a depot d with more batches than any other depot (see line 2). If this is the case, a batch belonging to this depot has to be destroyed in order not to violate the depot balancing constraints. Thus, the candidate set of batches B cand is reduced to the batches belonging to depot d (line 3-4). If the depots are already balanced, all batches might be destroyed (line 6). The probability of a batch b ∈ B cand being selected is dependent on its workload, so that batches that are already close to the capacity limit have a lower chance of being selected (see line 8). After selecting a batch, the EliminateBatch function returns the respective batch to the Shaking operator, which then excludes it from the set of batches (see line 5 of Algorithm 6).
In Algorithm 8, just like in the Shaking operator, the EliminateBatch function chooses a batch d to make sure that the balancing constraint is not violated (see line 3). The orders in batch d are then split up among the other batches in B so that the total weight of the other batches remains as small as possible; however, the capacity constraint may be violated (see lines 4-5). If no batch exceeds the maximum allowed weight, the solution B is accepted (see lines 7-8); otherwise, a Repair operator is executed (see line 10). If the final solution still has batches that exceed the maximum weight, the neighborhood solution is discarded, otherwise it is accepted (see lines 11-12 of Algorithm 8). Within the Repair operator in Algorithm 17, the infeasible batch b inf is fixed while iterating over all other batches to find a batch b other to swap. The weight of b other is as close as possible to the weight of the infeasible batch b inf (see line 6). The reassignment of orders to B is performed using the differencing method proposed by Karmarkar & Karp (1982). This algorithm saves the weights of all the items in a sorted list and in each iteration extracts the two largest numbers from it, computes the difference between them and places only the difference back in the list. This represents a decision to put each of the respective orders into different batches. This procedure is repeated until there is only one number left, which is the value of the final subset difference (Karmarkar & Karp, 1982).

Algorithm 8: Minimize number of batches
The solution obtained by redistributing the orders is accepted if the difference in the weight of the two corresponding batches has decreased (see line 7). And the repair procedure is repeated for each batch that is infeasible or has become infeasible by applying the differencing method until all batches meet the capacity constraints or a batch cannot be balanced with any other batch.

Local search
Algorithm 10: Adaptive local search Result: Locally improved solution x * 1 Function ALS(x, T, Ω) 2 γ ← 0; γ unchanged ← 0 3 ρ i ← 1, i = 1, ..., |Ω| // Initial weight of each operator i 4 repeat 5 select operator i using ρ i After moving to a different basin of attraction using the Shaking algorithm, we use an adaptive local search (ALS) as described in Algorithm 10. We have a set of local search operators Ω, and each operator i has an initial weight ρ i = 1 (line 3). The weights are used to select the operator using a roulette wheel principle (line 5). The algorithm calculates the probability φ i of choosing the operator i as follows: We can get a new candidate solution x using the selected operator i (line 6). We use the Metropolis acceptance criterion, as in simulated annealing, to accept a worse solution based on the temperature T (lines 7-17). The acceptance of the worse solutions decreases if the temperature decreases. The weight of selected operator i is then adjusted dynamically at the search progresses based on the quality of the new solution x using the formula ρ i = λρ i + (1 − λ)Ψ (line 17). A score Ψ is computed using the formula: where ψ 1 , ψ 2 , ψ 3 , and ψ 4 are parameters with ψ 1 ≥ ψ 2 ≥ ψ 3 ≥ ψ 4 ≥ 0. A high Ψ value corresponds to a better performance. λ ∈ [0, 1] is the decay parameter that controls how sensitive the weights are to changes in the performance of the operator. Note that only the weight φ i of the selected operator i needs to be updated; the weights of other operators remain unchanged. This way of dynamically selecting an operator is adopted from adaptive variable neighborhood search (Gendreau & Potvin (2010)).
The greedy initial solution and the Shaking operator may come up with batches that have to visit many different shelves because each batch's items do not share the same set of storage locations. Therefore, the local search operators focus on moving orders to batches, where the number of visited shelves is minimized. In the following, we will introduce the local search operators Ω orders to be used in the adaptive local search.
The first operator is called MoveOrders (see Algorithm 11). This operator first determines for each order o the number of shelves it adds to its current batch, n o , that is, the maximum number of nodes that could be eliminated by removing that order from its batch. These quantities are then normalized and used as probabilities to draw κ orders from the set of orders O (lines 3-4). Given an order o i , all batches that the order can still fit into are gathered in B cand (line 6). Similarly to lines 3 and 4, we determine for each of these batches the number of items of order o i that are stored in a shelf which is already approached in the tour for that batch. Again, these quantities are normalized and used as probabilities for selecting the batch that the order o i will be moved to (lines 7-8). After a new batch is selected, the order is removed from the old batch and inserted into the new one (lines 9-11). At the end of this algorithm, the tours for the changed batches will be optimized using OptimizeShelves, which will be explained later. Furthermore, due to the mixed-shelves storage, the tours for the batches that might share same shelves with the changed batches will also be optimized. In lines 13-15, such batches are added to B temp if they share an SKU with o i . Note that lines 13-15 can be ignored for the dedicated storage.

Algorithm 12: Exchange κ order pairs
Result: Updated solution for each order the number of shelves it adds to its batch: ρ o The second local search operator is called ExchangeOrders (see Algorithm 12). At the time when the batches are highly loaded, the relocation of orders may not work any longer due to the capacity constraints. Therefore, the operator finds two orders o i and o j from two different batches b oi and b oj and exchanges them if no capacity constraints are violated. Thus the first step is to determine all combinations of orders that can be exchanged without violating any capacity constraints and come from different batches (line 2-4). Similarly to the MoveOrders operator, the ExchangeOrders operator then determines for all orders the weight ρ o specifying the number of shelves they add to their current batch (line 5). Now, for each of the possible combinations i, j, the weights ρ i and ρ j of the respective orders are added up and normalized in order to receive the sampling probability φ ij (line 6). Now, in total κ pairs of orders are selected randomly with probability φ ij , removed from their current batch and added to the batch of the other order in each case (lines 7-13). Similarly to MoveOrders, OptimizeShelves is used to optimize the tours for the batches in B temp .
Algorithm 13: Optimization of shelf assignment By performing the MoveOrders and ExchangeOrders operators, the new tours for the changed batches should be optimized using OptimizeShelves (Algorithm 13). For a given batch, this algorithm first determines the set of items contained in it (line 3). Then, for a given batch b and for each shelf, the set of items contained in batch b that are stored in the respective shelf is determined (see line 5). In order to prefer solutions where potentially fewer shelves have to be visited, the cardinality of these sets |P bs | are normalized and used as probabilities for selecting the next shelf s * to be added to the tour for b (see lines 6-7). All the items that can be collected at shelf s * are then excluded from the set of items belonging to b, and one unit of the respective item is taken from the shelf (lines 8-11). The procedure repeats until all items of batch b have been assigned to shelves. Lastly, the resulting tour is optimized by using the ALS from algorithm 10 and a set of local search operators Ω tour (line 13). Note that we use here the following local search operators. First, the 2-opt operator exchanges two edges of a given tour to generate a neighborhood solution (see algorithm 14). Likewise, the Swap operator performs the same operation, but on nodes (shelves) instead of edges connecting shelves (algorithm 15). Lastly, the Relocate operator moves a shelf to a new, random position in the tour In order to avoid the necessity of optimizing the item-shelf assignment for all batches simultaneously, we also allow for negative stocks during the assignment phase (see line 5 of algorithm 13). Therefore, potentially infeasible solutions have to be repaired, which is done using the function RepairNega-tiveStock after applying the local search operators MoveOrders and Ex-changeOrders. For a item-shelf combination (p, s) with negative stock, n ps is set to minus infinity (line 4 in alogrithm 17), so that this combination is no longer considered in line 5 of algorithm 13. Now, for each batch that picks up item p at shelf s the item-shelf assignment is applied again using Opti-mizeShelves (lines 5-8). Then, the constrained solution is accepted for the batch with the least increase in the fitness and discarded for all other batches (line 9). This procedure is repeated until there are no negative stocks anymore.

Computational evaluation
A series of numerical studies was conducted to evaluate (1) the solution qualities of three-index and two-commodity flow formulations, (2) whether the mixed-shelves policy works well for orders with different sizes of order lines (in both small and large warehouses). The computational results in this section were conducted on a PC with an Intel Core i7-7700K CPU @4.20GHz and 32GB RAM running Microsoft Windows 10 in 64-bit mode. Our models were solved by Gurobi 8.1.1 via Python version 3.7. In the following subsections, we first detail instance generation and the setting of parameters in Subsection 5.1. The results of the computational study of our models are presented in Subsection 5.2, while the tuned parameters and the results of VNS are presented in Subsections 5.3 and 5.4 respectively.   Table 2 shows the parameters for small and large instances, including layout (including number of shelves), number of orders, average number of order lines, three different order sets, number of SKUs, storage policy, number of depots and number of cobots per depot. Our test instances are available at https: //github.com/xor-lab/rafs-datasets.

Instance generation and parameter setting
We use the same layout for traditional manual warehouses as described in Van Gils et al. (2019). For example, we have a small layout with 360 shelves (6 aisles × 60 shelves per aisle, and one cross-aisle), in Figure 4. In such a layout, we define the width of each cross-aisle as 6 meters and the width of each pick aisle as 3 meters, while we define each shelf as 0.9 meters wide and 1.3 meters deep. Picking aisles are two-sided and wide enough for two-way travel of cobots (for example in Lee & Murray (2019) for the same assumption); therefore we assume the blocking of cobots to be minimum. Another small layout we test includes 24 shelves (2 aisles × 12 shelves per aisle, without cross-aisle), while we use a large layout with 3240 shelves (18 aisles × 180 shelves per aisle, and five cross-aisles (see Figures B.7 and B.8 in Appendix B)).
We generate different sets of orders (small instances: 10 and 20 orders; large instances: 100, 200 and 300 orders) randomly based on a given average number of order lines between 1 and 10. According to Van Gils et al. (2019), the number of order lines impacts the number of batches created and consequently the complexity of the problem. Therefore, we test two different average numbers of order lines per order: 1.6 (for e-commerce companies; see De Koster et al. (2012)) and 5. We don't test larger average numbers of order lines than 5, since we want to keep the weight of each order smaller than the capacity of each cobot. Note that we allow more than one item to be ordered within an order line of an order. We set the capacity of each cobot as in the real-world application to be 18kg according to Wulfraat (2016). That means the batch capacity is limited to 18kg. We call the orders with an average of 1.6 order lines small-line orders, and the orders with an average of 5 order lines medium-line orders. In order to get rid of randomness by generating orders, we generate three different sets (a, b, c) for each order size. The weights of items are generated randomly between 0.5kg and 3kg (small-sized items according to practical experience). The number of shelves sharing a SKU also seems to impact the complexity of the integrated problems (storage policy). We test two storage policies, namely dedicated and mixed-shelves. Recall that dedicated storage means that the items of a SKU are stored in only one shelf, while mixed-shelves storage means that the items of a SKU can be spread over several shelves. We also set the number of shelves on which the items of a SKU can be stored to 5 and 10 to see the complexity and efficiency of the mixed-shelves storage policy. We set the number of depots to be 2 for the small instances, while we set the number of depots to be 2, 4 and 8 for the large instances. For all instances, we assume that we have one cobot per depot. In our study, we do not intend to support decisions on the number of cobots and the number of depots in practice.
Note that we get the shortest path for each two nodes i and j with the Dijkstra algorithm by using NetworkX (Hagberg et al. (2008)). Table 3 shows the results of the comparison between the two-commodity model (in short: two) and the three-index model (in short: three) for small instances of 24 and 360 shelves respectively. The results of applying both storage policies, namely dedicated and mixed-shelves (in short: mixed(5), mixed(10)) storage policies, for small-and medium-line orders, are also shown in the table. Note that the model for each instance was solved using eight threads. Based on the results, we can gain some knowledge of the models of integrated order batching and routing. First, the two-commodity flow formulation provides better performance by achieving smaller gaps with smaller computational time for solving our integrated problem. The improvements in the time and optimum gap are marked in green. Second, based on the results we can get the following factors that increase the complexity of the model: The number of orders. If more orders are processed in a model, then more computational time is needed. The reason is obvious, since the set of physical items P C for picking is larger for more orders, assuming all other factors are the same.

Results of mathematical models
The average number of order lines. The models with small-line orders are more easily solved than those with medium-line orders, since small-line orders include smaller sets of physical items P for picking (see Table 3, columns small-line vs. medium-line), assuming the other factors are the same. Therefore the number of decision variables x ijrb and z psrb increases. Note that we should consider the number of orders and the average number of order lines together, since they  Table 3: Comparison of results of three-index and two-commodity models (the average gap and running time of instance sets a, b, c) for instances with 24 and 360 shelves. "-" means that there is no feasible integer solution found within the time limit (t.l.: 14,400 seconds)."*" means that some instances cannot find a feasible solution within the time limit.
influence the set of physical items for picking and the number of batches created, and consequently the complexity of the problem. Therefore, the instances of 10 medium-line orders are more difficult to solve than the instances of 20 small-line orders.
The storage policy. The models using the dedicated storage policy require less computational time than the models using the mixed-shelves storage policy, assuming the other factors are the same. In Table 3, we can see that if more shelves contain items of a SKU (mixed(5) and mixed(10) vs. dedicated), the problem is more complex, since the set of possible shelves including item p, V S p , is larger for all picking items in mixed-shelves storage. Therefore the number of decision variables x ijrb and z psrb increases.
The number of shelves (layout). In Table 3, it is easy to see that the models for a larger warehouse are more difficult to solve, since the set of shelves including all items in P is larger. Therefore, the number of decision variables x ijrb and z psrb increases.
In Table 4, the mixed-shelves policy definitely works better than the dedicated policy for small-line orders (in other words, shorter distances  Table 4: The average distances for instance set a, b, c of 24 and 360 shelves solved with the two-commodity formulation with the gap in %. The lines beginning with "%" show the percentage improvement in the results of mixed-shelves storage compared with the dedicated storage policy. "-" means that there is no feasible integer solution found within the time limit (t.l.: 14,400 seconds). "*" means that some instances cannot find a feasible solution within the time limit.
larger warehouse (with 360 shelves), the saving is more significant. The reason is obvious: First, the distances between visiting shelves are larger in a larger warehouse. Second, it is as expected that if more shelves contain items of a SKU, more distance can be saved for picking an item of this SKU (see mixed (5) vs. mixed(10) in Instances of 360 shelves), since the probability is higher in mixed(10) that a shelf nearby contains the required item. Based on the results of the two-commodity flow model in Tables 3 and 4, 60% of instances (36 out of 60) have not been solved optimally by Gurobi within the run-time limit of 4 hours. Among these, for 23 instances no feasible integer solution has been found. Layout, storage policy, the number of orders and the average number of order lines have effects on the number of non-optimal solutions. All of those instances with no feasible integer solution are those in which we apply mixed-shelves storage. This demonstrates the complexity of the problem. Therefore it is worth developing an efficient metaheuristic to gain more results.

Parameter tuning
It is often beneficial to tune algorithm parameters. In our VNS, parameter tuning is performed on the small instances (in total 60 instances). In our experiment, we tune two parameters in Algorithm 1, namely γ (parameter defining the number of iterations without improvement of x ) and κ max (parameter defining the neighborhood structures). Note that we don't tune local search parameters in our experiment, such as γ max unchanged = 3, T min = 0.1 and α = 0.975, which we apply in the local search improve routes within a batch, since they are not related to other algorithms. We test γ with the values 100, 200, 300 and 400, while κ max is set to be 3 and 4. And we set t max to be 3600 seconds. Five repetitions are run to eliminate randomness. Consequently, we have in total 60 × 4 × 2 × 5 = 2400 observations. Our tuning results show that the computational time increases about linearly with the increasing values of γ, but different γ-values have little effect on solution quality. So, we choose γ = 100 for the rest of the experiment. From our observation, κ max = 3 brings similar results to the results of κ max = 4 but shorter computational time using the same value of γ. So we will choose κ max = 3 in the further experiment.   Table 4, if there is a feasible integer solution. The blue numbers in cells sort the instances based on the computational time solved with Gurobi. The number marked by * is the comparable average distance for those instances with feasible solutions solved by Gurobi.

Results of our VNS
In Table 5, the average distances for small instances with κ max = 3 and γ = 100 are shown. Each result represents the average value of three instance sets a, b, c in five repetitions. For the instance sets where we can get optimal solutions with the two-commodity model within 4 hours, our VNS can provide optimal solutions (instance sets of 24 shelves with numbers 1, 2, 3, 5 and 6, and instance sets of 360 shelves with numbers 1 to 4, in Table 5). Note that the number of each instance set represents its complexity for each layout (24 and 360 shelves respectively). We want to keep the same setting with the same number in different layouts, and the instance set of 24 shelves does not include instance setting with the numbers 4, 10, 11 and 12. For the instance sets with numbers 6 to 8, some of which give us feasible solutions within 4 hours from the two-commodity model, our VNS provides either the same or better solutions.
The computational time of our VNS is very competitive compared with the time achieved by the solver (see Figure 5). It decreases substantially when the problem is solved by the VNS. Note that the time is not directly comparable, since the model for each instance was solved using eight threads (to get better results for comparison), while the VNS is solved with one thread. As shown in Figure 5, the computational time of each instance solved by the VNS is less than  Table 5. 5 minutes (more than 60% of instances can be solved within 2 minutes), while most of the instances solved by the model reach the time limit (without providing optimal solutions). Figure 6 shows that the computational time applying the VNS is dependent on the layout and the storage policy. Our VNS reduces the complexity of the mixed-shelves storage (not as in the model), since the GreedyTour algorithm provides similar complexity for both storage policies (O(|P o |)). The computational time increases slightly as the number of orders or order lines increases due to increased numbers of batches. Our results show that the VNS algorithm is an efficient tool for solving the integrated order batching and routing in multi-depot mixed-shelves warehouses, at least for our small instances.
Furthermore, we can continue with our statement in Subsection 5.2 that the mixed-shelves storage policy works well for both small-line and medium-line orders. In our AGV-assisted system, the limited capacity of cobots does not allow medium-line orders with very large order lines to be accepted, unless the splitting of orders is allowed (see e.g. in Xie et al. (2020)). Order splitting is outside the scope of this paper. Due to this setting of limited capacity of cobots, medium-line orders in mixed-shelves storage can save up to 62% on driving distances compared with the results in dedicated storage. The items in a medium-line order are spread among several shelves, so several shelves should be visited. Using mixed-shelves storage, the probability is higher that a shelf nearby contains the required items than dedicated storage. And because more shelves contain items of a SKU, the savings are larger for medium-line orders. The results of mixed(10) for medium-line orders are on average 11% better than the results of mixed(5).
Saving of 54% can also be achieved for the orders in large instances (see Table 6, 2 depots). Based on the results of small instances, the computational time might be strongly increased for the large instances, since they have a larger layout. Therefore, we limit the computational time for solving each instance to 1 hour. Additionally, we test the large instances in the different layouts including 4 and 8 depots. The results can be different if we have other placement of the depots and shelves. Still, we can see the trend that slightly more driving distances (about 4%) are required in the dedicated storage with the increasing size of depots. However, fewer driving distances for the instances with the smallline orders are required in the mixed-shelves storage (especially mixed(10)) with the increasing size of depots. If more shelves include items of the same SKUs, this increases the possibility that the small-line orders can be picked efficiently (regardless of in which depot). The batches are balanced among depots in large instances (same as in small instances). The mean absolute deviation of the number of assigned batches to depots is, for example, limited to less than 0.6 in the instances of 100 orders (eight depots).  Table 6: The average distances for instance set a, b, c of 3240 shelves (with 2, 4 and 8 depots) solved with the VNS algorithm. The lines beginning with "%" show the percentage improvement in the results of mixed-shelves storage compared with the dedicated storage policy.

Conclusions
In this work, we formulate and solve integrated order batching and routing in AGV-assisted warehouses. In such warehouses, each AGV (in our case, a cobot) is sent from its depot to collect the items of orders in different locations in the storage area and goes back to its depot. Each order is collected in a bin, and that is efficient for packing. The tour for a cobot is limited by its load capacity. We consider different depots (a.k.a. loading stations for cobots) while the items for each SKU are stored in different shelves in the storage area (a.k.a. the mixed-shelves storage policy). In such an environment, we formulate the new integrated order batching and routing with three-index and two-commodity network flow formulations to minimize the driving distances for cobots. We experimentally show that the two-commodity network flow formulation works better for our integrated problem by achieving smaller gaps with smaller computational time. With mixed-shelves storage and multiple lines of orders, the complexity of the problem increases significantly. Therefore, we propose a novel variable neighborhood search (VNS) algorithm to solve the integrated problem more efficiently. According to our experiments, our VNS can obtain optimal results for small instances, which can be solved optimally in the two-commodity model within 4 hours. For those small instances where we can obtain feasible solutions from the Gurobi solver within 4 hours, our VNS algorithm provides a better solution with an improvement of up to 16.8% within 5 minutes. Also, we apply our VNS to solve large instances within an acceptable computational time. Based on our VNS solutions, we can see that mixed-shelves storage works well for both the single-line and multi-line small-sized orders we tested. Up to 62% can be saved on driving distances by applying the mixed-shelves storage policy compared with our reference storage policy. It is worth mentioning that the saving we achieve is under the assumption that no refill is required. In the refill process, the mixed-shelves storage may induce a larger effort when storing the items into the shelves, e.g. more shelves need to be visited to refill items of an SKU, and this may also require more shelves in the warehouse. Furthermore, we also test our large instances with different depots and we can conclude that deploying more depots does not always bring more savings of driving distances. It can bring more savings especially in cases where more shelves include items of the same SKUs when processing small-line orders. In addition, we ensure balanced batches among stations in the models and our VNS.
Since an AGV-assisted warehouse system is a relatively new type of warehousing system, the concepts specific to such a system have not received much scholarly attention. Each picker works in a particular area in the storage area (called a zone). There are the following limitations in this work, which can be taken as ideas for further research. First, the models proposed in this work do not consider the interaction between pickers and robots. Based on modelling the interaction in the future, the waiting time of robots for human pickers can be considered so we can extend our models to take the time as our objective and determine the batch sequencing for each cobot (in the literature, this problem is called integrated batching, routing and picker scheduling; see e.g. Van Gils et al. (2019)). Second, the waiting time of robots for human pickers in zones depends on the size of the zone; therefore it is also interesting to determine the optimal number of zones in AGV-assisted warehouse systems (see e.g. De Koster et al. (2012) for the manual system). Third, we don't consider the refill process in our work. But the distribution of SKUs among the zones and within each zone affect on the one side the workload of pickers in zones, and on the other side the driving time/distance of cobots (i.e. a cobot needs more waiting time in the busy zone). Therefore, it is also interesting to research how to distribute and refill items efficiently. Mixed-shelves storage can be used as a good instrument to balance the workload of pickers, since the items of a SKU can be stored in different zones, while it reduces the waiting time for several cobots for a single picker. Fourth, the placement of depots is also an important topic for the further research.
As mentioned before, our implemented VNS is able to solve the classic integrated batching and routing problem with a single depot in the dedicated storage. As pointed out in Li et al. (2017), there is a lack of comparison of existing heuristics methods for solving this classic problem. Therefore, future work should be focused on find out which method in the literature performs the best.

Term
Description SKU stock keeping unit order line one SKU with the ordered quantity item a physical unit of one SKU pick order a set of order lines from a customer's order small-line order small number of SKUs (on average 1.6) per order multi-line order multiple SKUs per order backlog all unfulfilled orders The central components of an AGV-assisted picking system are listed in Table A.8.

Component
Description shelves storing items bin temporary storage items for an order during picking storage area the inventory area where the shelves are stored human workers picker working in a given part of the storage area to pick items from shelves packer packing order items in packing stations packing stations where packers pack the pick order items queue a list of cobots waiting in front of a packing station picking locations somewhere in front of the shelves in the storage area where pickers pick the order items cobots robots that transport items between the storage area and workstations. Each of them has a limited weight capacity and belongs to a certain packing station.

Appendix B. Additional layouts used in our experiments
In addition to the layout with six pick aisles and one cross-aisle, we also use other layouts as shown in the following figures.