## 4 Solving the Warehouse Delivery Problem
### Task Assignment and Sequencing
#### 4.3.2 Conflict Detection and Resolution
Some form of restriction to reduce the grounding, such as the move corridors used in the path-based encoding, would still be required. Importantly, such corridor restrictions are difficult to define for the step-based encoding because there is no primitive path concept on which to anchor such a definition. ### Results

We now report on our experimental results. To establish the base-line and to highlight the dramatic improvements of the path-based encoding with performance enhancements, we first compare the step-based encoding with both the basic and most performant path-based encodings. Here we only looked at the basic problem of finding a single solution to see which encoding variant could find a solution within the 30 min time limit. Having established a base-line with the step-based encoding, we next focus entirely on the path-based encoding highlighting features of the different encoding variants. This identifies the most performant path-based encoding variant, Path + LB + Corr(S) + TskAcyC(W) + MVA + MVR + MVH, which we use for the remaining experiments. To better understand the limits of the path-based encoding on the industry benchmark we separate the instances by the graph and number of jobs. Then we look at the impact of the performance of solving on the size of the robot, comparing a point sized robot against one meter and two meter diameter robots. Finally, we consider solution quality. Here we consider the addition of the pallet replacement time constraints and compare the solving time and resulting makespan metric against solving to find the minimal makespan. #### 5.3.1 From Step Encoding to Best Path-Base Encoding Variant

Table 4 compares the step-based encoding, with and without task acyclicity checking, against a selection of path-based encoding variants. For the path-based encoding we highlight the basic variant, a variant with a corridor restriction, and finally, a variant with the most performant enhancements. These results serve to highlight the full range of behaviors for the different encodings and their variants. Firstly, we can see that while the step-based encoding can solve some of the crafted problem instances it failed on all of the industrial problem instances. For all of the industry benchmark, and most of the crafted benchmark instances, _clingo_[dl] simply ran out of memory and failed to ground the problem. Note, as we used the #edge-based task acyclicity checking for the high-performant path-based encoding, and because it was the only performance enhancement that we consider for the step-based encoding, we therefore also compare this variant of the step-based encoding with the basic variant. However, as we can see in Table 4 there is no benefit of adding task acyclicity checking for the step-based encoding. Besides the fact that the step-based encoding failed to ground most problem instances, there are two points to highlight. Firstly, while the basic path-based encoding was able to ground many more instances than the step-based encoding, nevertheless it still failed to ground a significant number of the industrial problems. However, when we added a corridor restriction it was able to ground all of the problem instances. Furthermore, with the corridor restriction, and lower-bound propagation, it also reduced the number of time outs and allowed many more additional problem instances to be solved. The final point to highlight is to do with the performance of the best variant of the path-based encoding, Path + LB + Corr(S) + TskAcyC(W) + MVA + MVR + MVH. Not only did it ground all problem instances, but it was also able to solve most of them; in some cases in a matter of seconds and in other cases within a few minutes. Note, the mean and geometric means for runtimes apply only to the grounded problem instances. Consequently, the reason that the runtimes for the basic path-based encoding are higher than the basic step-based encoding is simply that the step-based encoding was not able to ground the hard problem instances.