A Linear-Time Algorithm for the Feasibility of Pebble Motion on Trees
We consider the following pebble motion problem. We are given a tree T with n vertices and two arrangements \(\cal R\) and \(\cal S\) of k<n distinct pebbles numbered 1, . . ., k on distinct vertices of the tree. Pebbles can move along edges of T provided that at any given time at most one pebble is traveling along an edge and each vertex of T contains at most one pebble. We are asked the following question:
Is arrangement \(\cal S\) reachable from \(\cal R\) ?
We present an algorithm that, on input two arrangements of k pebbles on a tree with n vertices, decides in time O(n) whether the two arrangements are reachable from one another. We also give an algorithm that, on input two reachable configurations, returns a sequence of moves that transforms one configuration into the other.
The pebble motion problem on trees has various applications including memory management in distributed systems, robot motion planning, and deflection routing.