Skip to main content

Assignment 2: multi-drone cooperative delivery planner

All twenty orders, up to five drones of two types, two charging pads and one shared corridor. Reuses assignment 1. Released week 7, due week 12.

Due: 14 May 2027 · 17:00 Australia/Sydney · Weight: 50%

Released Monday of week 7 (2027-04-05). Due Friday of week 12, 17:00 Australia/Sydney, after the week 12 tutorial. It starts with assignment and completes coordination as weeks 8 to 11 teach it.

The brief

On the same map, up to five drones of two types and two charging pads deliver all twenty orders. Reuse assignment 1; add assignment, shared resources and space-time coordination; show that the two kinds of planning actually feed back into each other.

What you do

  1. Generate a feasible assignment and a per-drone order from full-task costs. Implement cross-drone migration and explain the feasibility filter.
  2. Bring charging waits into the full evaluation. No constant added per drone.
  3. Complete myNeighbours in the supplied state-search driver: retain node, phase and absolute time, filter full occupancy intervals, and account for wait energy. Use the provided full-flight planner for the canonical fleet experiment. Compare two priorities. Validate full round trips, in-air waiting energy and resource occupancy.
  4. Compare three levels: initial assignment on independent costs; fixed assignment with coordination; improvement with real cost feedback. An independent plan that fails joint validation is diagnostic only; its shorter time is not an advantage.
  5. Record at least one real feedback event: a route’s wait or detour changed a cost, which changed an assignment or an order. Attach the results under fixed conditions and a failure explanation.
  6. Design one new order — place, weight, promised time — that makes the reference method late or infeasible. Create it in the Lab’s scenario copy at an existing address, or in your own planner using the published scenario format. Recompute, validate and explain which assumption the result exposes. Keep the variant separate from the fixed twenty-order submission.

What you submit

How to justify the result

The four criteria below carry the weights shown. Constraints first, performance second: for complete feasible plans the objective is total lateness, then the time every drone is back, then total energy. A failure analysis may be submitted without a complete plan, but feasibility is never faked.

Problems in assignment 1 may be fixed and carried forward. If you continue on the credited reference searcher, this assignment marks the new work; an early error is not penalised twice. Weeks 8, 10 and 11 give formative feedback on the resource plan, the smallest cooperative case and the experiment design. That feedback does not add assignment marks; attendance and lab participation count towards the separate tutorial component every week.

Evidence for each criterion

CriterionEvidence to includeWhat the reader checks
Assignment and improvementmyAssign, myMigrations, the feasibility matrix and objectiveEvery order appears once; payload/range filtering comes before efficiency; migrations include insertion positions.
Space-time correctnessmyNeighbours, phase and interval tests, two priorities and checked full-flight recordsTouching intervals are legal, interior overlaps are rejected, waits use the right energy model, and the full task returns home.
Feedback and validationmyImprove, the three-level table and one accepted move with before/after eventsThe candidate is recomputed from the initial world; the explanation connects changed costs to the decision; search termination is stated.
Experiments and reproductionFixed-case outputs, separate designed-order files, commands and explanationComparisons keep the same model; the variant is labelled; limitations and reused code are acknowledged.

The shared charging queue, geometry, full space-time flight planner and physical checker are provided. Your local state-search exercise demonstrates the state and reservation logic without requiring a second flight engine. Keep its symbolic times separate from the canonical fleet’s seconds and joules. For failure analysis, identify the violated constraint and show how to reproduce it; an incomplete plan has no comparable objective.

A worked evidence example

Teacher example, computed when this site builds. Use the structure to explain your own run. The numbers below do not earn a grade on their own.

Fixed model: all twenty canonical orders, five drones, two FCFS charging pads, full return reserve and a capacity-one corridor. Even the independent plan receives the joint checker.

Scroll the table sideways to read every column.

J = (total lateness in seconds, final return in seconds, energy in joules)
MethodComputed JWhat the check establishes
Independent routes9402, 11470, 127586013/20 on time; 0 check issues; method completed
Same assignment, coordinated9402, 11470, 127586013/20 on time; 0 check issues; method completed
Feedback · 120-candidate limit615, 9654, 127586017/20 on time; 0 check issues; search budget reached

Example explanation

Independent and coordinated planning tie on this default input. That is an experimental result; it does not establish that the shared corridor never matters. The feedback run changes the assignment and recomputes charging, routes and delivery times from the same starting conditions.

Accepted change: #07: A → C at position 1. Its recomputed objective is (615, 9654, 1275860). Inspect the affected tasks to explain the cause before attributing the improvement to a particular wait or detour.

The result is a valid plan found within a bounded search. A 120-candidate stop establishes neither a local nor a global optimum. A separate 20/20 stored assignment is available in the downloadable reference record, so the bounded run is also not the best known plan.

Reproduce this evidence and prepare your files

First use the Lab buttons or import the computed browser sample and press Run. Then unzip the practice pack and run the teacher example:

node --test strategies.test.mjs wiring.test.mjs
node reference.mjs a2

After completing your own functions, run node run.mjs a2. Keep the successful command output, your module and tests, the generated student JSON, and the exported browser comparisons. The local and browser record formats are labelled separately in the guide.

Your local record includes the state exercise, all three planning levels, two priorities, the accepted moves, full resource records and independent checks. Add your separate designed-order input and output.

The spec

The brief poses the problem and leaves room for a response. The spec is the fixed part: what a marker checks. Some lines can be checked mechanically; the rest call for judgement.

How it is marked

CriterionWeight
Assignment, local improvement, objective definition25%
Space-time search, resource constraints, correctness30%
Route–schedule feedback and integrated validation25%
Fair experiments, reproduction, personal explanation20%