ARGOS LAB Start with an idea

03 / Coordination · Beginner

Task allocation.

Who takes the job? When is it finished?

Three agents. Six observation points. Choose who goes where,
then watch each agent travel and complete its work.

Try the experiment
01 / Assigned 0.0 s

A1 receives T1, a point 0.8 m away.

02 / Arrived 0.8 s

At the point. Service has not started yet.

03 / Completed 2.8 s

After 2 s of service, T1 counts as finished.

Worked example · A1 → T1 · nearest-pair greedy, no failure
Service begins in the interval after arrival. Drawings are schematic.

A browser simulation of planar point motion. The 3D scene shows the same run, with no flight physics, collision avoidance or live execution.

Before you begin

One agent stops.
Who takes its work?

Compare fixed round-robin, nearest-pair greedy and the Hungarian algorithm. All three use one central coordinator; the assignment rule changes.

Explore the four questions
Method & assumptionsCentral allocation · finite-state execution · ideal, immediate reports
0.1 s steps · 2 s uninterrupted service per task
Allocation algorithms
Fixed · greedy · Hungarian

Choose owners in a fixed cycle, match nearest pairs, or minimize the current matching’s total distance.

Execution mechanism
Finite-state machine (FSM)

Travel and service are explicit states with completion conditions. An assignment is only a target.

Decision architecture
Centralized for all three

One coordinator assigns targets using exact status and position reports. This comparison changes the rule, while keeping authority fixed.

Timing / communication
Discrete · ideal reports

0.1 s intervals. Failures are reported immediately, with no packet loss, heartbeat or communication delay.

Execution: one browser model of planar point motion. Both views observe it. The 3D quadrotors use a fixed display altitude of 1.5 m. Station rings show completed service; the yard is illustrative. There are no obstacles, collision avoidance, sensor images or flight dynamics in this task-allocation experiment.

01 / Try it

Follow the work to completion.

Paused
Nearest-pair greedy

Circles: agents · squares: tasks · dashed line: assigned target. Select an agent to inspect its executor.

Completed tasks0 / 6Arrival alone does not count
Simulated time0.0 sStep 0 / 600
Available agents3 / 3Capacity, not mission success
Total travel0.000 mIncludes interrupted journeys

Track each task

Work remaining

Reassignments: 0
Lost service: 0.0 s

Look inside

Agent A1

  1. Idle
  2. Travelling
  3. Servicing
  4. Unavailable

Normal cycle: idle → travelling → servicing → idle. Unavailable is terminal for this run. Executors receive only their own position, state and assigned task.

The coordinator receives exact status and position reports. Each executor receives only its own target and state. Mission time and total travel are evaluator measurements.

Positions, states and targets are executor reports. Travelled distance is an evaluator measurement, excluded from allocation inputs. Distances are in metres.
AgentStateTargetxyTravelled

Inspect the choice

Dispatch at 0.0 s

Costs are straight-line distances at this saved decision in the current simulation. Selected cells carry ✓. Busy executors and completed tasks do not enter a new matching.

Read the sequence

What happened, and when?

    Latest 30 events. Completion reports precede a same-boundary failure; dispatch follows both.

    02 / Follow a question

    Same work.
    Different assignments.

    Change the rule. See what gets assigned, and what gets finished.

    A1A2A3 T1T4 T2T5 T3T6 ownsownsowns 01 / Fixed ownership

    Keep the same owners.

    Each agent has its own task queue. Make A2 unavailable: can the other two finish work that still belongs to A2?

    A1A2 T1T2 0.8 m4.0 m + A3 → T3: 2 m = 6.8 m total 02 / Nearest-pair greedy

    Take the nearest pair.

    A1 takes the closest task first. What does that leave for A2? Inspect the first dispatch and add the three selected distances.

    A1A2 T1T2 2.0 m1.2 m + A3 → T3: 2 m = 5.2 m total 03 / Hungarian matching

    Consider the pairs together.

    A1 travels farther so A2 can travel less. The first matching costs 5.2 m. Does optimizing one dispatch guarantee the best whole mission?

    A2 servingPendingA3 assigned 4.0 s5.0 s8.3 s 1 s of service lost2 s still needed 04 / Interrupted service

    Finish the work left behind.

    With greedy allocation, A2 loses 1 s of service when it stops. Advance to 5 s, then watch when an agent becomes free to take the released task.

    Each case starts paused with the stated rule and failure preset. Pairings and event order are schematic, not recorded trajectories.

    Compare the six measured reference runs Completion · blocked work · recovery

    Same starts, tasks, travel speed, service duration and budget. Each run stops at its first outcome. A blocked run’s short duration is not a successful completion time.

    Time is simulated. Travel includes unsuccessful work. Reassignments count an already assigned task moving to a different owner.
    PolicyA2 at 5 sOutcomeCompletedTimeTravelReassignedLost service

    03 / Go deeper

    A good pairing.
    Then the work begins.

    The Hungarian algorithm minimizes the sum of distances in the current dispatch. The finite-state executor still has to travel and finish service.

    First dispatch · three selected pairs
    Greedy
    6.8 m
    Hungarian
    5.2 m

    Same starts and six available tasks. Different pairings for A1 and A2; A3 takes T3 in both.

    This compares current matching costs, not whole-mission travel or completion times.

    Read the objective, assumptions & source
    cij = ‖pi − qj‖
    minimize ∑ cij xijat most one task per idle agent
    at most one agent per pending task
    number of pairs = min(idle agents, pending tasks)
    pi, qj
    Agent position and task position, in metres.
    xij ∈ {0, 1}
    Whether that agent–task pair is selected.
    Current distance objective
    Service time is identical for all tasks. No future jobs or failure schedule enter the matrix.
    Global measurements
    Mission duration, total travel and completed fraction are evaluation results, not the optimized dispatch cost.

    Unavailable is a modeled event.

    A2 stops at 5.0 s and its active task returns to pending. The coordinator learns this immediately. No real failure detector is implemented.

    What counts as finished?

    All six tasks must complete 2 s of service. If no assignment or execution can proceed while work remains, the result is blocked. Otherwise the budget is 60 s.

    Primary assignment source: H. W. Kuhn (1955), The Hungarian method for the assignment problem ↗. This workshop uses a rectangular minimum-cost variant, recomputed for idle agents and pending tasks. It does not claim an optimal multi-stop mission schedule.

    An optimal current matching does not guarantee an optimal whole-mission schedule. Completed work stays completed; interrupted service restarts. Immediate failure detection does not imply immediate reassignment.

    Keep the thread

    Who gets
    to decide?

    Explore central, hierarchical and peer decisions in a separate experiment with message delivery and local report caches.

    Explore decision architectures