4 research outputs found

    On Rearrangement of Items Stored in Stacks

    Full text link
    There are nβ‰₯2n \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 (kβˆ’1)d+1,…,kd(k-1)d +1, \ldots, kd, in that order, from the top to the bottom for all 1≀k≀n1 \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 1≀k≀n1 \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 dβ‰€βŒˆcnβŒ‰d \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+ndlog⁑dlog⁑n)\Omega(nd + nd{\frac{\log d}{\log n}}) and Ξ©(nd)\Omega(nd), respectively
    corecore