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.

Rings and paths

verified
Time: tightMemory: tight

Degree two everywhere; both measures are settled.

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+Topologyring or path

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: ring
\(G\) is a cycle \(C_n\) (every node of degree 2), or a path when stated.
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
tight
\(O(k)\) versus \(\Omega(k)\).
lower bound
bottleneckdistance
holds when
  • all \(k\) agents on one node: the farthest target is \(k/2\) away
  • any algorithm
\(\Omega(n)\) when \(k = n\), since \(D = \Theta(n)\) Augustine & Moses Jr. 2018.
introductory
\(O(n)\)
\(k = n\)knows \(n\)
current best
\(O(k)\)
Memory · bits of persistent memory per agent, including its identifier
tight
\(O(\log k)\) 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)\)

Results, in order of publication

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

One algorithm for paths, rings and trees; optimal in both measures on paths and rings for \(k = n\).

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

Inherited from arbitrary graphs; \(O(\log(k+\Delta)) = O(\log k)\) because \(\Delta = 2\).

Open questions

  1. Anonymous randomized agents disperse from a rooted ring configuration with \(O(1)\) bits in \(O(n)\) rounds Molla & Moses Jr. 2019. From an arbitrary configuration the known algorithm never terminates; is \(O(1)\)-bit dispersion with termination possible on rings?

Notes

The ring is the testbed for every harder variant: silent agents, Byzantine agents and dynamic edges all have ring-specific results, catalogued under those branches.

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))\)
Dynamic rings
Time \(O(n)\)Memory \(O(1)\)
Weak Byzantine agents on rings
Time \(O(n)\)Memory \(O(\log n)\)
Silent agents on rings
Time \(O(k + \log L)\)Memory \(O(\log L)\)

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.