Coating
Particles must cover a fixed object as uniformly as possible: in layers, each filled before the next.
Problem statement and measurescollapse
A fixed object (a connected set of nodes of the triangular lattice that particles cannot enter) is surrounded by particles. They must arrange themselves into layers around the object, each layer filled before the next. Time in rounds; work is the number of moves (expansions and contractions).
Measures: Time, asynchronous rounds; Moves, total expansions and contractions (work).
A first look
the basic problem, a simple algorithm and why some things cannot be done, for a newcomer
Imagine ants covering a crumb, one even layer at a time. The floor is the triangular lattice: the endless graph whose nodes are the corners of a tiling of the plane by equal triangles; each node is joined by an edge to six others, its neighbours. A particle is a tiny machine that occupies one node; it moves in two actions: an expansion into an empty neighbouring node, after which it is expanded and occupies both, then a contraction into one of the two; so one expansion and one contraction move it by one node, and each of them is one move. The object is a connected set of nodes that particles cannot enter; \(n\) particles, connected to each other and to the object, sit around it. They must arrange themselves into layers around the object: the first layer (the nodes that neighbour the object) must be full before any particle sits in the second, and so on, with any extra particles in the last layer. In the standard version particles have constant memory, agree on which way is clockwise (chirality), and may flip coins; we count rounds (intervals of time in which every particle is activated at least once) and work (the total number of moves).
The particles move in handovers: an expanded particle contracts and at the same moment pulls a neighbour into the node it vacates, so the chain of particles never breaks.
- Particles that neighbour the object become roots; every other particle picks a neighbour closer to the object as its parent, so the particles form trees hanging off the object.
- Roots walk clockwise around the object along the first layer; followers trail behind their parents by handovers.
- A root that bumps into a particle that has already stopped stops too (it retires). A follower that still wants a node in the layer sends a 'complaint' to a root with free space ahead, which then moves on and makes room.
- A leader, elected among the particles of the first layer, marks where the layer begins and ends. When the first layer is full, the next layer starts from that mark, and so on.
Why it matters. Spanning trees plus handovers became the standard way to move all the particles without ever disconnecting them.
Put all \(n\) particles in one straight line that meets the object only at its first particle, and let the first layer have more than \(n\) nodes. The particle at distance \(i\) from the object must end as a neighbour of it, so it must travel about \(i\) nodes, which takes about \(2i\) moves. The last particle is at distance \(n\), and an unkind scheduler may let it act only once per round.
Why it matters. It is the simplest example of the distance argument that underlies most lower bounds for programmable matter.
Let the object be a long straight bar. The first layer is completely full except for one empty node exactly in the middle below the bar, and one extra particle sits in the second layer exactly in the middle above it. Someone who sees everything solves it in a constant number of rounds: every particle in the first layer shifts by one node around the bar, closing the gap, and the extra particle drops in. Local particles near the two ends of the bar cannot tell, within about \(n/4\) rounds, which way the shift should go: information moves at most one node per round, and the situation looks the same from both ends.
Why it matters. It shows that 'worst case over all inputs' is the right measure here, since comparing to the best possible run on each input is hopeless for local algorithms.
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
SILBOT, chirality, deterministic
- Coating in SILBOT without chirality Navarra & Piselli 2023.
- Multi-layer coating, which "seems unfeasible" in SILBOT Navarra & Piselli 2023.
What the community started looking at
Coating was posed as a basic task for self-organising matter with work (moves) as the first measure Derakhshandeh et al. 2017; rounds followed, with matching bounds Daymude et al. 2018. Coating was later solved by silent, oblivious particles Navarra & Piselli 2023 and in 3D hybrid programmable matter Kostitsyna et al. 2024.
Perspectives
- From robots to particles Programmable matter re-asks the questions of robots in the plane on a lattice, with particles that touch, remember a little and stay connected; SILBOT takes memory and messages away again, and the stochastic approach replaces algorithms by a biased local rule.
All settings
The assumption tree (2 settings, 1 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, Moves); dashed nodes are branch points with no catalogued variant, named after the axis on which their branches differ. Axis order: Memory › Scheduler › Orientation › Randomness › Initial shape › Connectivity during execution.
-
No assumptions · 2 branches by memory
Nothing is assumed on any axis.
-
+constant memory+strong scheduler+chirality+randomizedUniversal coating standard setting Any object admitting a uniform coating is coated with optimal work, and in \(\Theta(n)\) rounds with high probability.
-
obliviousweak scheduler+chiralitySILBOT, chirality, deterministic Silent oblivious particles with chirality coat a convex object with one layer, deterministically, in \(O(n^2)\) rounds.
-
Know a better result, or found a mistake? Suggest a result · Report an error. Accepted contributions are acknowledged.