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.

Rooted trees

verified
Time: polynomial gapMemory: tight

All agents start at one node of a tree; the time is governed by the diameter, as in collaborative tree exploration.

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+Initial configurationrooted (all agents on one node)

Not assumed

RandomnessdeterministicNode memoryno whiteboardsNode identifiersanonymous 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: rooted start
All \(k\) agents start at the same node (\(\ell=1\)). Also called co-located (black hole search: all agents at the home base) or a rooted graph Molla & Moses Jr. 2019.

What is known

Time · rounds in the synchronous model, epochs in the asynchronous model, until dispersion is reached
polynomial gap
\(O(D^2)\) is matched only for trees of height about \(\sqrt{\log n}\); for larger heights only \(\Omega(D)\) is known, a factor \(D\).
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.
introductory—
current best
\(O(D^2)\)
\(k = n\)knows \(n\)
Memory · bits of persistent memory per agent, including its identifier
tight
\(\Theta(\log n)\) for \(k = n\).
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—
current best
\(O(\log n)\)
\(k = n\)knows \(n\)

Results, in order of publication

Time \(O(D^2)\)Memory \(O(\log n)\)
\(k = n\)knows \(n\)

Introductory and current best; the full (arXiv) version improves the memory from \(O(\log n + \Delta)\) in the conference version to \(O(\log n)\).

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

Inherited; better than \(O(D^2)\) only when \(k = o(D^2)\).

Open questions

  1. For \(k < n\) the lower bound \(\Omega(D^2)\) no longer applies (only \(k\) nodes must be reached). Whether \(O(\min(k, D^2))\) time is achievable, and whether it is necessary, has not been addressed.

  2. For \(k=n\) agents rooted on a tree of height \(D\) much larger than \(\sqrt{\log n}\), is \(\Omega(D^2)\) time necessary? The known bound is existential in \(D\) Disser et al. 2020.

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

Rooted initial configuration
Time \(O(k)\)Memory \(O(\log(k+\Delta))\)
Trees
Time \(O(k)\)Memory \(O(\log(k+\Delta))\)

Lower bounds from stronger settings hold here

No catalogued stronger setting.

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