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.

tight near-optimal polynomial gap unknown impossible· rows follow the assumption tree; each cell: best upper bound vs lower bound, and what forces the lower bound
Setting
Time
Memory
Edge direction + static graph
—
—
Number of agents + undirected
—
—
Identifiers + \(k \le n\)
—
—
Faults + distinct IDs (eponymous)
—
—
Communication + no faults
—
—
Asynchronous agents + local communication
2 open · 4 results
tight \(O(k)\) vs \(\Omega(k)\) distance
near-optimal \(O(\log(k+\Delta))\) vs \(\Omega(\log k)\) symmetry breaking
Arbitrary graph, arbitrary initial configuration + synchronous
3 open · 7 results
tight \(O(k)\) vs \(\Omega(k)\) distance
near-optimal \(O(\log(k+\Delta))\) vs \(\Omega(\log k)\) symmetry breaking
Trees + tree
2 open · 2 results
polynomial gap \(O(k)\) vs \(\Omega(D^2)\) collaborative tree exploration
near-optimal \(O(\log(k+\Delta))\) vs \(\Omega(\log k)\) symmetry breaking
Rooted trees + rooted start
2 open · 2 results
polynomial gap \(O(D^2)\) vs \(\Omega(D^2)\) collaborative tree exploration
tight \(O(\log n)\) vs \(\Omega(\log k)\) symmetry breaking
Rooted initial configuration any topology, + rooted start
1 open · 3 results
tight \(O(k)\) vs \(\Omega(k)\) distance
near-optimal \(O(\log(k+\Delta))\) vs \(\Omega(\log k)\) symmetry breaking
Rings and paths + ring
1 open · 2 results
tight \(O(k)\) vs \(\Omega(k)\) distance
tight \(O(\log k)\) vs \(\Omega(\log k)\) symmetry breaking
Grids + grid
3 open · 3 results
polynomial gap \(O(\min(k, \sqrt n))\) vs \(\Omega(\sqrt k)\) distance
tight \(O(\log k)\) vs \(\Omega(\log k)\) symmetry breaking
Silent agents (no communication) no communication, + synchronous
3 open · 1 results
polynomial gap \(O(k\log L + k^2\log\Delta)\) vs \(\Omega(k + \log L)\) timing is the only channel
tight \(O(\log L + \log\Delta)\) vs \(\Omega(\log L + \log\Delta)\) encoding identifier and ports
Silent agents on rings + ring
1 open · 1 results
tight \(O(k + \log L)\) vs \(\Omega(k + \log L)\) timing is the only channel
tight \(O(\log L)\) vs \(\Omega(\log L)\) encoding the identifier
Global communication + global communication, + synchronous
2 open · 2 results
tight \(O(k)\) vs \(\Omega(k)\) distance
near-optimal \(O(\log(k+\Delta))\) vs \(\Omega(\log k)\) symmetry breaking
Weak Byzantine agents + at most weak Byzantine faults, + local communication, + synchronous
3 open · 1 results
polynomial gap \(\tilde O(n^9)\) vs \(\Omega(k)\) distance
unknown — vs \(\Omega(\log k)\) symmetry breaking
Weak Byzantine agents on rings + ring
2 open · 1 results
tight \(O(n)\) vs \(\Omega(n)\) distance
tight \(O(\log n)\) vs \(\Omega(\log n)\) symmetry breaking
Weak Byzantine agents on grids + grid
2 open · 1 results
tight \(O(\sqrt n)\) vs \(\Omega(\sqrt n)\) distance
polynomial gap \(O(n\log n)\) vs \(\Omega(\log n)\) symmetry breaking
Crash faults + at most crash faults, + local communication, + synchronous
3 open · 3 results
polynomial gap \(O(\min(m, k\Delta))\) vs \(\Omega(k)\) distance
near-optimal \(O(k\log(k+\Delta))\) vs \(\Omega(\log k)\) symmetry breaking
Crash faults on grids + grid
1 open · 2 results
tight \(O(\sqrt n)\) vs \(\Omega(\sqrt k)\) distance
tight \(O(\log n)\) vs \(\Omega(\log k)\) symmetry breaking
Strong Byzantine agents any faults, + local communication, + synchronous
2 open · 2 results
polynomial gap \(O(X(n) + n^3)\) vs \(\Omega(k)\) distance
unknown — vs —
Anonymous agents with randomness anonymous, + private coins, + no faults, + local communication, + synchronous
3 open · 2 results
polynomial gap \(O(k^2)\) vs \(\Omega(k)\) distance
tight \(O(\log\Delta)\) vs \(\Omega(\log\Delta)\) port addressing
More agents than nodes any \(k\), + private coins, + no faults, + local communication, + synchronous
3 open · 2 results
unknown \(O(m + k)\) vs —
polynomial gap \(O(\Delta)\) vs \(\Omega(\log\Delta)\) port addressing
Communication directed, + \(k \le n\), + distinct IDs (eponymous), + no faults
—
—
Directed graphs + local communication, + synchronous
3 open · 2 results
polynomial gap \(O(k^2\Delta_{out})\) vs \(\Omega(k)\) distance
near-optimal \(\Theta(\log(k+\Delta_{out}))\) vs \(\Omega(\log k)\) symmetry breaking
Directed graphs, 1-hop communication + \(h\)-hop communication, + synchronous
2 open · 1 results
polynomial gap \(O(kD)\) vs \(\Omega(k)\) distance
polynomial gap \(O(k\log(k+\Delta_{out}))\) vs \(\Omega(\log k)\) symmetry breaking
Communication + connected every round, + undirected, + \(k \le n\), + distinct IDs (eponymous), + no faults
—
—
Dynamic graphs (1-interval connected) + local communication, + synchronous
2 open · 0 results
impossible — vs \(\text{impossible}\) adversarial edge changes
impossible — vs \(\text{impossible}\) adversarial edge changes
Dynamic rings + ring
2 open · 3 results
tight \(O(n)\) vs \(\Omega(n)\) distance
tight \(O(1)\) vs —
Dynamic graphs with global communication + global communication, + synchronous
2 open · 3 results
tight \(\Theta(k)\) vs \(\Omega(k)\) adversarial edge changes
tight \(\Theta(\log k)\) vs \(\Omega(\log k)\) symmetry breaking

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