Aarush Thinks

How Robots Divide Work Without a Boss

Marginal gain, bid vectors and gossip, how a physical swarm reaches agreement on who does what, and the threshold that keeps it from re-planning itself into paralysis.

21 May 2026 · 5 sections
Contents 5 sections

Three Drones, One Task

The problem that appears the moment nobody is in charge.

Three drones scan the same area. A new target appears, and all three calculate that they are the best fit for it. Without coordination they all fly toward the same task wasting energy, risking collision.

Bees rarely fight over the same flower patch. Local sensing, simple dance feedback and natural spacing create an invisible buffer that distributes the work. Machines have no such intuition. They need a structured way to say: I see you want this task, I want it too, let’s agree who gets it and why.

Why the obvious fix breaks

The easy shortcut is a static utility function. Each drone scores itself on distance, battery and capability; highest score wins.

That holds until multiple tasks share a physical space.

This is where the Consensus-Based Bundle Algorithm applies. Not a mysterious breakthrough a market-inspired protocol that lets decentralized agents bid on work, bundle tasks intelligently and reach agreement through neighbour-to-neighbour gossip. No central planner, no single point of failure. Shared rules and structured disagreement.

The Art of Marginal Gain

Before drones talk to each other, they talk to themselves.

Each agent runs identical bidding logic locally. A typical utility function:

Score = w₁(battery) − w₂(distance) − w₃(risk) + w₄(task priority)

The weights are set by the system designer, and the resulting score becomes the bid. High battery, low distance, low risk and good priority alignment produce a higher number and a stronger claim.

Suppose Drone A calculates:

TaskStandalone score
Task 180
Task 245
Task 370
Task 420

Stop here and Drone A claims Task 1. CBBA asks a different question.

Building the bundle

The algorithm starts with an empty route and takes the highest standalone score Task 1, at 80. Then it asks which remaining task to add next, and where in the route to place it.

Order matters, because travel cost is not symmetric. Base → Task 2 → Task 1 and Base → Task 1 → Task 2 are different distances, different battery drains, different risk profiles.

So Drone A tests every remaining task in every insertion position:

CandidatePositions tested
Task 2[T2 → T1] and [T1 → T2]
Task 3[T3 → T1] and [T1 → T3]

If inserting Task 3 after Task 1 adds +70 to the route score while Task 2 adds only +40, Task 3 wins. The bundle becomes [T1, T3] in whichever insertion order scored best.

This is greedy. The drone does not simulate every possible future combination, which would grow expensive as tasks scale. It makes the best local decision at each step and constantly re-evaluates marginal gain planning rather than reacting, estimating future routes, battery drain and utility before it ever moves.

Consensus and the Gossip Network

Two vectors, one rule, and agreement that nobody administers.

Drone A has a local plan. Drone B, flying nearby, ran the same math independently and may also believe it should take Task 1. Two agents claim the same work.

Every drone maintains two structures:

StructureHolds
Winning bid vector bThe highest bid value the drone currently knows for each task
Assignment vector yWhich drone it believes currently owns each task

At startup both are empty:

b_A = [0, 0, 0, 0]
y_A = [∅, ∅, ∅, ∅]

After local bidding, Drone A updates its own:

b_A = [80, 0, 70, 0]
y_A = [A,  ∅, A,  ∅]

Resolving the conflict

Drone A shares its vectors with nearby neighbours; Drone B shares back. The rule is simple for each task, keep the highest valid bid and update the owner.

If Drone B bid 85 on Task 1, Drone A sees it and drops its claim:

b_A = [85, 0, 70, 0]
y_A = [B,  ∅, A,  ∅]

Drone A steps back and re-plans its route without Task 1. Drone B owns it and flies Base → T1.

When the network is incomplete

During execution the drones scatter. A and B fly north, C moves west, D heads south. Direct communication breaks and the topology becomes dynamic and time-varying.

CBBA handles this with asynchronous gossip. A talks to B; later B flies within range of C and passes the updated vector along. Information propagates hop by hop.

Replanning and the Stability Threshold

Perfect mathematical consensus means nothing if the physical world keeps moving.

Drones finish tasks. New tasks appear. Batteries drop, weather shifts. CBBA is designed to re-plan dynamically, which raises a familiar dilemma.

Let agents steal tasks the moment a slightly better bid appears and the result is chaos: routes change every few seconds, drones abort missions, and energy goes into communication and rerouting instead of execution.

The reassignment threshold

Most real implementations add a buffer. An agent gives up a claimed task only if the new bid beats the current one by a meaningful margin:

New Utility − Current Utility > δ

δ is chosen by the designer. It prevents small fluctuations from disrupting execution change the plan only when the improvement justifies the cost of switching.

Event-driven, not continuous

Re-planning fires on triggers rather than running constantly:

  • Task completion or failure
  • Battery dropping below a safety threshold
  • A new high-priority mission injected into the network
  • Major environmental change detected by onboard sensors

Between events, agents stick to their bundles. They execute, observe, wait. When a trigger fires they rebuild local bundles, broadcast updated bids, and let consensus ripple outward again.

Designing Better Gossip

What transfers from drones to any decentralized system.

CBBA does not require drones to be smarter than bees. It requires them to follow the same rules, consistently. That removes the need for a central map, a ground station dispatcher, or a lead coordinator, and replaces top-down command with structured peer negotiation.

For anyone building decentralized systems robots, autonomous vehicles, distributed microservices the same four rules apply:

  • Don’t try to predict everything. Predict locally, update frequently.
  • Don’t optimize in isolation. Optimize for marginal gain, then validate with neighbours.
  • Don’t force instant agreement. Let information propagate; design for eventual consistency.
  • Don’t chase perfect stability or perfect optimization. Choose a threshold that matches your environment.

Watch a bee swarm move between flowers, or a fleet of robots divide a search grid, and there is likely no master plan being executed. There is a shared protocol a way to bid, a way to bundle, a way to argue, update and agree without ever meeting in the middle.

Building the instinct starts with changing the question. Not how do I make one brain control the whole system, but:

The answer is rarely more control. It is usually better gossip.

This piece was originally published on Medium. You can read it there here.