# A Scheduling Solution for Robotic Arm-Based Batching Systems with Multiple Conveyor Belts +
## 4 The Proposed Solution Approach
#### A Goal Program for a Sub-Problem: Scheduling Robotic Arms Only for a Single Tray  
Let us suppose that there are candidate items to be batched by multiple robotic arms into a specific tray on a specific tray lane. These items are included in set \(V\). The weight of item \(i\in V\) is denoted by \(w_{i}\). We also introduce the concept of a field, a specific area of an infeed conveyor belt. For the sake of simplicity, we divide the conveyor belt into a set of the same-sized multiple fields and assume that only a single item can be place on a field at a time. Given this, the arrival time of item \(i\) at field \(f\), \(AT_{i,f}\) is then calculated based on the speed of the conveyor belt and the spawn time of item \(i\) in the system. We also assume that the operational areas (i.e., a set of consecutive fields) of multiple robotic arms are independent and do not overlap. By this assumption, field index \(f\in F\) identifies a responsible robotic arm for the field. The set of fields where the robotic arm responsible for field \(f\) operates is denoted by \(OA_{f}\). It should be noted that the schedules from the previous sub-problems solving are the input to the current sub-problem solving, and these schedules identify the following constraints: when the tray for the current sub-problem should advance, and when the robotic arms are unavailable. Given the constraints and the fact that the processing time of a robotic arm depends on the destination tray where an item will be placed by the robot, the timing for the tray advancement serves as a reference point to compute a robotic arm's processing time. Specifically, we denote the travel time of a robotic arm from field \(f\) to the target tray's position after its \(n\)th advancement by \(\tau_{f\to n}\). Likewise, \(\tau_{n\to f}\) denotes the travel time for the opposite movement. Similarly, whether a robotic arm can reach the target tray or not also depends on the tray's advancement and corresponding position. Based on this, we define set \(Adv_{f}\) that includes all the advancement steps, after which a robotic arm working at field \(f\) can reach the target tray. We also compute whether item \(i\) will arrive at field \(f\) after the \(n\)th advancement of the tray, and based on the computation, we create \(V_{f,n}\), a set of items that can be handled at field \(f\) between the \((n-1)\)th and \(n\)th tray advancements. Lastly, from the previous sub-problem solutions, we create set \(V_{i,f}^{-}\) and \(V_{i,f}^{+}\), which include the items that are scheduled by the previous sub-problems and should be placed at a predetermined tray before and after item \(i\) arrives at field \(f\) (i.e., \(AT_{i,f}\)), respectively. With the notation, we define the principle decision variable \(x_{i,f,n}\) that indicates if item \(i\in V\) will be picked up at field \(f\in F\) after the \(n\)th advancements of the target tray of the sub-problem. Two deviation variables, \(d^{+}\) and \(d^{-}\), are also defined to measure the gap between the tray's weight and a target weight. Figure 4: A flow chart of the proposed solution approach. With the decision variables, the objective function of a sub-problem for the robotic arm scheduling problem that is to minimize the give-away on a tray can be written by  
\[\min\quad d^{+} \tag{1}\]  
This objective function is then minimized subject to the following constraints. First, we link the primary decision variable to the deviation variables by  
\[W_{target}-\sum_{i\in V}\sum_{f\in F}\sum_{n=0}^{N}w_{i}\cdot x_{i,f,n}=d^{+}- \ d^{-} \tag{2}\]  
where \(W_{target}\) is the target weight of the tray. Next, an item can be picked up at most once by a robotic arm, which can be written by  
\[\sum_{f\in F}\sum_{n=0}^{N}x_{i,f,n}\leq 1\quad\forall i\in V. \tag{3}\]  
Additionally, in order to pick up item \(i\) at field \(f\), a robotic arm for the field should be available.