Energy distribution
Only some particles reach the energy source; particles must share energy so that every action is paid for.
Problem statement and measurescollapse
Each action costs energy, and only \(s\) particles, the sources, can harvest energy from outside. Particles must distribute energy locally so that every particle can act, or so that a given energy-agnostic algorithm runs correctly. Time is in rounds.
Measures: Time, asynchronous rounds.
A first look
the basic problem, a simple algorithm and why some things cannot be done, for a newcomer
Think of a colony of bacteria where only cells at the edge of the colony get food and must pass nutrients inward so that every cell can keep working. 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 occupies one node and moves in two actions: an expansion into an empty neighbouring node, after which it occupies both, then a contraction into one of the two; so one expansion and one contraction move it by one node. The system of \(n\) particles is connected; only \(s\) of them, the sources, can take energy from outside. Every action (a move, or any step of some other algorithm) costs energy; each particle has a battery of fixed capacity and can pass a limited amount of energy to a neighbour each time it is activated (an activation). The goal is that no particle stays stressed (short of energy for its next action) for long, and that the system as a whole keeps acting; we count rounds (intervals of time in which every particle is activated at least once). Particles have constant memory and no compass.
- Set-up. The sources are roots. Every other particle picks a neighbour that is already in a tree as its parent, so the system becomes a forest of trees hanging from the sources.
- Signal. A stressed particle raises a 'stress' flag. A particle with a stressed child raises its flag too, so the signal climbs to the root.
- Inhibit. A root that hears of stress raises an 'inhibit' flag, which spreads down its whole tree: inhibited particles stop spending energy on their own actions.
- Share. Roots harvest energy; any particle with enough energy passes some to a child whose battery is not full.
- Use. A particle that is not inhibited and has enough energy performs its next action. Flags are cleared when the stress is gone.
Why it matters. It was the first model of energy as a limited resource in programmable matter, and the stress/inhibit signals are modelled on how bacterial biofilms share nutrients.
Start with every battery empty and every particle needing a full battery. Then the system needs \(n\) full batteries' worth of energy in total. Energy enters only at the \(s\) sources, and each source harvests at most a fixed amount per activation. An unkind scheduler activates each source only once per round.
Why it matters. It is a supply argument rather than a distance argument: the bottleneck is how fast energy can enter, not how far it must travel.
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.
What the community started looking at
Energy distribution was inspired by biofilms Daymude et al. 2021; the later question was a general transformation of energy-agnostic algorithms and its overhead under unfair adversaries Weber et al. 2023.
All settings
The assumption tree (1 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); 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.
Know a better result, or found a mistake? Suggest a result · Report an error. Accepted contributions are acknowledged.