Mobility Matters
Home›Mobile agents on graphs›Exploration›Collaborative exploration›Dispersion

Dispersion

Spread \(k \le n\) agents over the nodes of an \(n\)-node anonymous graph so that no node hosts more than one agent, as fast as possible and with as little memory per agent as possible.

Problem statement and measuresexpand

Given a connected graph \(G\) with \(n\) nodes and \(m\) edges, and \(k \le n\) agents placed on the nodes of \(G\) in any initial configuration (the node of each agent; several agents may share a node), the agents must reach a configuration in which every node hosts at most one agent, and stay there.

Time is the number of rounds (synchronous) or epochs (asynchronous; an epoch is an interval in which every agent completes at least one full Communicate–Compute–Move step, not necessarily the shortest one) until the dispersed configuration is reached; where a result also makes every agent terminate explicitly, the notes say so. Memory is the number of bits of persistent memory each agent needs, counting its \(O(\log k)\)-bit identifier. Unless a variant or a result says otherwise, agents know nothing about \(n\), \(m\), \(k\), \(\Delta\) or \(D\).

Dispersion is the natural "one agent per node" problem: it is equivalent to leaving one agent at every node of a depth-first search (DFS) tree of \(k\) nodes, which is why depth-first search bounds such as \(\min(m, k\Delta)\) appear throughout, and it is a building block for exploration, leader election and self-deployment of agents.

Measures: Time, rounds in the synchronous model, epochs in the asynchronous model, until dispersion is reached; Memory, bits of persistent memory per agent, including its identifier.

Trees

verified
Time: polynomial gapMemory: near-optimal

No cycles, so a DFS never needs to test for revisits; the difficulty is spreading agents that start far apart across long branches.

Assumed (added on the last edge are outlined)

+Graph dynamicsstatic graph+Edge directionundirected+Number of agents\(k \le n\)+Identifiersdistinct identifiers (eponymous): agents have pairwise distinct identifiers+Faultsno faults+Communicationlocal (co-located agents communicate)+Timingsynchronous rounds+Topologytree

Not assumed

RandomnessdeterministicNode memoryno whiteboardsNode identifiersanonymous nodesInitial configurationarbitrary (agents on any \(\ell \le k\) nodes)
Formal definitions of this setting
Graph dynamics: static graph
\(G_t=G\) for all \(t\): the edge set never changes.
Edge direction: undirected
\(G=(V,E)\) with \(E\subseteq\binom V2\); every edge can be traversed in both directions.
Number of agents: \(k \le n\)
The number of agents satisfies \(1\le k\le n\).
Identifiers: distinct IDs (eponymous)
Distinct identifiers (eponymous agents): the label function \(\mathrm{id}:\{1,\dots,k\}\to\{1,\dots,L\}\) is injective; usually \(L=k^{O(1)}\), so a label takes \(O(\log k)\) bits.
Randomness: deterministic
The next state and move of an agent are a function of its current state and what it observes.
Faults: no faults
All agents follow the algorithm forever.
Communication: local communication
Agents at the same node at the same time can read each other's entire memory (face-to-face communication). Agents crossing on an edge do not meet.
Timing: synchronous
Time proceeds in rounds \(t=1,2,\dots\); in every round every agent communicates, computes and moves (at most one edge) simultaneously.
Node memory: no whiteboards
Nodes have no storage: no information can be left at a node except by an agent staying there.
Node identifiers: anonymous nodes
Nodes have no identifiers; an agent at \(v\) sees only \(\deg(v)\) and the port numbers \(1,\dots,\deg(v)\), which are assigned locally and independently at each endpoint of an edge.
Topology: tree
\(G\) is connected and acyclic: \(|E|=n-1\).
Initial configuration: any start
Agents start at arbitrary nodes; \(\ell\le k\) nodes are initially occupied, possibly with several agents each.

What is known

Time · rounds in the synchronous model, epochs in the asynchronous model, until dispersion is reached
polynomial gap
\(O(n)\) for \(k = n\) versus a lower bound of \(\Omega(D^2)\) that is proved only for \(D\approx\sqrt{\log n}\); in general the gap is polynomial.
lower bound
\(\Omega(D^2)\) Disser et al. 2020
bottleneckcollaborative tree exploration
holds when
  • \(k = n\): every node must be reached
  • deterministic
  • existential in \(D\): the hard tree has height \(D=\lceil\sqrt{\log n}\rceil\), so the bound is about \(\log n\) rounds; it is not shown for larger heights
  • proved for collaborative exploration with labelled nodes and global communication, so it holds for dispersion Augustine & Moses Jr. 2018 Kshemkalyani et al. 2022
Transferred from collaborative tree exploration (Theorem 2.5 of Disser et al. 2020) by Augustine & Moses Jr. 2018; re-proven for the global model in Kshemkalyani et al. 2022. In addition \(\Omega(k)\) Kshemkalyani & Ali 2019.
introductory
\(O(n)\)
\(k = n\)knows \(n\)
current best
\(O(k)\)
Memory · bits of persistent memory per agent, including its identifier
near-optimal
\(O(\log(k+\Delta))\) versus \(\Omega(\log k)\).
lower bound
\(\Omega(\log k)\) Augustine & Moses Jr. 2018
bottlenecksymmetry breaking
holds when
  • deterministic
  • all agents have the same memory bound
  • an initial configuration with co-located agents (rooted suffices)
  • memory counts the identifier
introductory
\(O(\log n)\)
\(k = n\)knows \(n\)
current best
\(O(\log(k+\Delta))\)

Results, in order of publication

Time \(O(n)\)Memory \(O(\log n)\)
\(k = n\)knows \(n\)

Memory-optimal; the authors ask whether \(o(n)\) rounds are possible.

Time \(O(k)\)Memory \(O(\log(k+\Delta))\)

Inherited from arbitrary graphs. For \(k = n\) this is \(O(n)\), no better than 2018.

Open questions

  1. Augustine & Moses Jr. 2018 asked for \(o(n)\)-round dispersion on arbitrary trees. Precisely: for \(k = n\) and an arbitrary initial configuration, is there an algorithm whose time is bounded by a function of \(D\) alone, ideally \(O(D^2)\) as in the rooted case? No tree-specific algorithm has appeared since 2018; the linear-time general algorithms give only \(O(n)\).

  2. With global communication, trees admit \(O(D\cdot\max(D,k))\) rounds with \(O(\max(D, \Delta\log k))\) bits (arXiv version of Kshemkalyani et al. 2020); whether the \(\max(D,k)\) factor can be reduced to \(D\), and whether local communication suffices, is open.

Notes

Anonymous randomized agents from a rooted tree configuration: \(O(n)\) rounds with \(O(\log\Delta)\) bits Molla & Moses Jr. 2019.

What carries over from neighbouring settings

Read off the order of assumptions, not checked case by case: results may carry extra assumptions (shown on their pages), and asynchronous time is measured in epochs.

Algorithms from weaker settings work here

Arbitrary graph, arbitrary initial configuration
Time \(O(k)\)Memory \(O(\log(k+\Delta))\)

Lower bounds from stronger settings hold here

Rooted trees
Time \(\Omega(D^2)\)Memory \(\Omega(\log k)\)

Branches from here

Know a better result for this setting, or found a mistake? Suggest a result · Report an error. Accepted contributions are acknowledged.