On Rearrangement of Items Stored in Stacks
Abstract
There are $n \ge 2$ stacks, each filled with $d$ items (its full capacity), and one empty stack with capacity $d$. A robot arm, in one stack operation (move), may pop one item from the top of a nonempty stack and subsequently push it into a stack that is not at capacity. In a {\em labeled} problem, all $nd$ items are distinguishable and are initially randomly scattered in the $n$ stacks. The items must be rearranged using popandpush moves so that at the end, the $k^{\rm th}$ stack holds items $(k1)d +1, \ldots, kd$, in that order, from the top to the bottom for all $1 \le k \le n$. In an {\em unlabeled} problem, the $nd$ items are of $n$ types of $d$ each. The goal is to rearrange items so that items of type $k$ are located in the $k^{\rm th}$ stack for all $1 \le k \le n$. In carrying out the rearrangement, a natural question is to find the least number of required popandpush moves. In terms of the required number of moves for solving the rearrangement problems, the labeled and unlabeled version have lower bounds $\Omega(nd + nd{\frac{\log d}{\log n}})$ and $\Omega(nd)$, respectively. Our main contribution is the design of an algorithm with a guaranteed upper bound of $O(nd)$ for both versions when $d \le cn$ for arbitrary fixed positive number $c$. In addition, a subroutine for a problem that we call the Rubik table problem is of independent interest, with applications to problems including multirobot motion planning.
 Publication:

arXiv eprints
 Pub Date:
 February 2020
 arXiv:
 arXiv:2002.04979
 Bibcode:
 2020arXiv200204979S
 Keywords:

 Computer Science  Robotics;
 Computer Science  Data Structures and Algorithms