  The dispersion problem on graphs requires $k$ robots placed arbitrarily at
the $n$ nodes of an anonymous graph, where $k \leq n$, to coordinate with each
other to reach a final configuration in which each robot is at a distinct node
of the graph. The dispersion problem is important due to its relationship to
graph exploration by mobile robots, scattering on a graph, and load balancing
on a graph. In addition, an intrinsic application of dispersion has been shown
to be the relocation of self-driven electric cars (robots) to recharge stations
(nodes). We propose three efficient algorithms to solve dispersion on graphs.
Our algorithms require $O(k \log \Delta)$ bits at each robot, and $O(m)$ steps
running time, where $m$ is the number of edges and $\Delta$ is the degree of
the graph. The algorithms differ in whether they address the synchronous or the
asynchronous system model, and in what, where, and how data structures are
maintained.
