  For rearranging objects on tabletops with overhand grasps, temporarily
relocating objects to some buffer space may be necessary. This raises the
natural question of how many simultaneous storage spaces, or "running buffers",
are required so that certain classes of tabletop rearrangement problems are
feasible. In this work, we examine the problem for both labeled and unlabeled
settings. On the structural side, we observe that finding the minimum number of
running buffers (MRB) can be carried out on a dependency graph abstracted from
a problem instance, and show that computing MRB is NP-hard. We then prove that
under both labeled and unlabeled settings, even for uniform cylindrical
objects, the number of required running buffers may grow unbounded as the
number of objects to be rearranged increases. We further show that the bound
for the unlabeled case is tight. On the algorithmic side, we develop effective
exact algorithms for finding MRB for both labeled and unlabeled tabletop
rearrangement problems, scalable to over a hundred objects under very high
object density. More importantly, our algorithms also compute a sequence
witnessing the computed MRB that can be used for solving object rearrangement
tasks. Employing these algorithms, empirical evaluations reveal that random
labeled and unlabeled instances, which more closely mimics real-world setups,
generally have fairly small MRBs. Using real robot experiments, we demonstrate
that the running buffer abstraction leads to state-of-the-art solutions for
in-place rearrangement of many objects in tight, bounded workspace.
