Near-gathering
Robots must get within a small distance of each other without ever colliding.
Problem statement and measurescollapse
Robots with limited visibility, each seeing only the robots within its visibility radius \(V\), start at distinct points whose visibility graph (two robots joined by an edge when they are within distance \(V\)) is connected. They must reach a configuration in which every robot sees all others, without a collision (two robots at the same point) ever happening.
Measures: Time, rounds (FSYNC, SSYNC) or epochs (ASYNC) until the task is done; "finite" when only solvability is known; Colours, colours of the light per robot (0 for oblivious robots).
A first look
the basic problem, a simple algorithm and why some things cannot be done, for a newcomer
Imagine short-sighted people in fog who must come close enough that everybody can see everybody, without bumping into each other. In the problem the people are \(n\) robots, points at distinct places in the plane, and each sees only the robots within distance \(V\) (its visibility radius). Join two robots by an edge when they are within distance \(V\), and call them neighbours; the robots and these edges form the visibility graph, and at the start it is connected (every robot can be reached from every other along edges). Each robot reads positions in its own local coordinate system (its private axes and unit of length) and repeats a Look–Compute–Move cycle: it takes a snapshot of where the robots it sees are (Look), decides on a destination point (Compute) and moves towards it (Move). Robots are identical, silent and oblivious (no memory between cycles); in the basic version their local coordinate systems agree on the direction of one axis, and the scheduler, controlled by an adversary (an imagined opponent) that decides when each robot acts and how long each phase takes, is ASYNC (each phase may take any finite time). The robots must reach a configuration (the positions of all robots) in which every robot sees all others, and two robots may never be at the same point (a collision).
- Compute the smallest enclosing circle of the robots you can see, and aim for its centre (the Go-To-the-Center rule).
- For every robot you see (every neighbour), stay inside the disc of radius \(V/2\) around the midpoint between you and it. Your neighbour obeys the same rule, so the two of you stay within distance \(V\), your edge is kept, and the visibility graph stays connected.
- To avoid collisions, move only a short distance and only part of the way to your target. Here robots see a little farther than \(V\): edges still join robots within distance \(V\) (the connectivity range), but each robot sees every robot within distance \(V + \tau\) (its viewing range), for a constant \(0 < \tau \le 2V/3\) Castenow et al. 2022. So a robot can also compute where its nearby neighbours are heading and keep clear of them.
- Stop when everyone you see is very close: since the visibility graph is connected, then everyone is close.
Why it matters. It lets short-sighted robots reach a state where they all see each other, after which any algorithm for robots with unlimited visibility can take over.
Place \(n\) robots on a regular \(n\)-gon with sides of length 1, the visibility radius, so each robot sees only its two neighbours. The adversary chooses local coordinate systems so that all robots see the same thing and the polygon stays regular forever. Each robot sees itself and two neighbours nearly on a straight line: the triangle they form has height at most about \(\pi/n\). If a robot always moves inside the triangle of what it sees, it moves towards the centre by at most about \(\pi/n\) per round (a step of time in which each robot that the scheduler activates performs one full cycle). The polygon's radius is about \(n/(2\pi)\), so shrinking it to two thirds of its size takes about \(n^2\) rounds.
Why it matters. It shows that local rules pay quadratically in the size of the swarm, and points to where a faster algorithm would have to do something different.
Why must the start be connected? Take two robots farther apart than \(V\). Each sees only itself, in every cycle. A deterministic oblivious robot with the same snapshot always computes the same move in its own coordinates. The adversary gives both robots the same orientation and unit and wakes them together: they make exactly the same move in the plane, so their distance never changes. They never see each other.
Why it matters. It is the reason every limited-visibility algorithm assumes a connected start and works hard to keep it connected.
What is known
The best upper bound against the best lower bound in each catalogued setting. Open a setting for its results, proofs and notes, or see the progress map with the branch points.
Open questions 2
ASYNC, limited visibility, one common axis
- Pagli, Prencipe and Viglietta conjecture that near-gathering is impossible without agreement on one axis.
SSYNC, limited visibility, disoriented
- Near-gathering in \(O(\Delta_0)\) epochs?
What the community started looking at
Near-gathering was introduced to get robots close without collisions, a safe first phase for other tasks Pagli et al. 2015; later work asked how fast disoriented robots can do it Castenow et al. 2022.
Relaxation of Gathering
Gathering requires a common point; near-gathering only requires being close, but forbids collisions. It is used as a first phase before forming patterns.
Related problems
Convergence: Near-gathering is also a relaxation of gathering: robots must get close (within visibility of each other) without ever colliding Pagli et al. 2015, while convergence lets them approach a point only in the limit.
Perspectives
- Meeting at one place Rendezvous and gathering on graphs, gathering and convergence in the plane, and evacuation through an unknown exit all ask entities to end at one point. The papers give the same reasons for meeting, but each model makes a different part of it hard: symmetry and exploration on graphs, capability in the plane, information in continuous search.
All settings
The assumption tree (2 settings, 2 branch points)
The root assumes nothing. Going down, each edge adds the assumptions on its chips (+blue); a grey chip names the branch that leaves that axis unassumed while a sibling assumes something. Solid nodes are catalogued variants with their status per measure (Time, Colours); dashed nodes are branch points with no catalogued variant, named after the axis on which their branches differ. Axis order: Body › Visibility › Opacity › Faults › Scheduler › Lights (persistent memory) › Agreement on coordinates › Movement › Multiplicity detection › Randomness › Identifiers.
-
No assumptions · 1 branches by body
Nothing is assumed on any axis.
-
+point+transparent+no faultsScheduler · 2 branches
-
Know a better result, or found a mistake? Suggest a result · Report an error. Accepted contributions are acknowledged.