On Rearrangement of Items Stored in Stacks
There are stacks, each filled with items (its full capacity), and one empty stack with capacity . A robot arm, in one stack operation (move), may pop one item from the top of a non-empty stack and subsequently push it into a stack that is not at capacity. In a {\em labeled} problem, all items are distinguishable and are initially randomly scattered in the stacks. The items must be rearranged using pop-and-push moves so that at the end, the stack holds items , in that order, from the top to the bottom for all . In an {\em unlabeled} problem, the items are of types of each. The goal is to rearrange items so that items of type are located in the stack for all . In carrying out the rearrangement, a natural question is to find the least number of required pop-and-push moves. In terms of the required number of moves for solving the rearrangement problems, the labeled and unlabeled version have lower bounds and , respectively. Our main contribution is the design of an algorithm with a guaranteed upper bound of for both versions when for arbitrary fixed positive number . In addition, a subroutine for a problem that we call the Rubik table problem is of independent interest, with applications to problems including multi-robot motion planning.
View on arXiv