315

On Rearrangement of Items Stored in Stacks

Jingjin Yu
Abstract

There are n2n \ge 2 stacks, each filled with dd items, and one empty stack. Every stack has capacity d>0d > 0. A robot arm, in one stack operation (step), may pop one item from the top of a non-empty stack and subsequently push it onto a stack not at capacity. In a {\em labeled} problem, all ndnd items are distinguishable and are initially randomly scattered in the nn stacks. The items must be rearranged using pop-and-pushs so that in the end, the kthk^{\rm th} stack holds items (k1)d+1,,kd(k-1)d +1, \ldots, kd, in that order, from the top to the bottom for all 1kn1 \le k \le n. In an {\em unlabeled} problem, the ndnd items are of nn types of dd each. The goal is to rearrange items so that items of type kk are located in the kthk^{\rm th} stack for all 1kn1 \le k \le n. In carrying out the rearrangement, a natural question is to find the least number of required pop-and-pushes. Our main contributions are: (1) an algorithm for restoring the order of n2n^2 items stored in an n×nn \times n table using only 2n2n column and row permutations, and its generalization, and (2) an algorithm with a guaranteed upper bound of O(nd)O(nd) steps for solving both versions of the stack rearrangement problem when dcnd \le \lceil cn \rceil for arbitrary fixed positive number cc. In terms of the required number of steps, the labeled and unlabeled version have lower bounds Ω(nd+ndlogdlogn)\Omega(nd + nd{\frac{\log d}{\log n}}) and Ω(nd)\Omega(nd), respectively.

View on arXiv
Comments on this paper