Skip to main content

Assignment 1: single-drone routing and delivery plan

One drone, the six known orders #01–#06: correct search, the full round trip with energy, and a justified task order. Released week 3, due week 7.

Due: 9 April 2027 · 17:00 Australia/Sydney · Weight: 30%

Released Monday of week 3 (2027-03-08). Due Friday of week 7, 17:00 Australia/Sydney. It covers weeks 1 to 6 only; nothing about several drones is examined here.

The brief

One drone, the six known orders #01–#06. Implement correct search, handle the full round trip and the energy budget, then produce a single-drone task order you can justify.

What you do

  1. Implement Dijkstra and A* in the same search framework. Justify the heuristic: its unit, its lower-bound argument, and whether it is consistent. Provide one counterexample that exposes a wrong implementation, with the test that fixes it.
  2. Complete the budget and dominance checks in the resource-label skeleton. Distinguish “the fastest candidate is out of budget” from “no feasible task was found”. Every order includes service and the unloaded return leg.
  3. Implement the timetable recurrence. Compare FIFO, earliest-deadline and swap improvement on the course’s objective. On the six-order instance, check your result against all 720 permutations and say which optimum you reached.
  4. With the task and parameters fixed, explain one improvement, one limitation and one failure. Do not change the model or drop an order to improve a number.

What you submit

How to justify the result

The four criteria below carry the weights shown. Constraints are checked before performance is compared: a plan with a violation is not a valid plan, but an accurate diagnosis of why it fails earns analysis marks. A correct argument and a reliable counterexample are marked in their own right; performance is not the only evidence.

Peer discussion and external code are acknowledged in the analysis. AI assistance does not replace your own explanation. Every claim about a result points at code, an input and a run record.

Evidence for each criterion

CriterionEvidence to includeWhat the reader checks
Search and correctnessmySearch, a hand trace and a test for discovery or reopeningThe returned path exists, its summed cost matches, and the stated guarantee has the right assumptions.
Full task and resourcesYour dominance/budget rules, #07 counterexample and a checked flight ledgerService, unloaded return and reserve are included; a discarded feasible prefix is explained.
Timetable and improvementmyTimetable, mySwaps, FIFO/deadline/swap/exact table for #01–#06Each departure follows availability; all orders remain; the optimum claim matches the neighbourhood or enumeration.
Experiments and explanationCommands, fixed inputs, your tests, cited sources and a short interpretationAnother person can regenerate the evidence and identify which code you wrote or reused.

Use the teacher’s geometry, full-trip costs, label propagation and independent checker. Implement the search, timetable and swap functions yourself; choosing browser presets is useful exploration but does not fulfil those implementation criteria. The worked example below illustrates evidence structure, not a complete assessed submission.

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: canonical orders #01–#06, one light drone, service and unloaded return, loading and turnaround; no shared charging or corridor reservations.

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
Ready-time order0, 2558, 263271Evaluated order; no optimality claim
Earliest deadline0, 2738, 263271Evaluated order; no optimality claim
Pair-swap improvement0, 2558, 263271Local optimum under pair swaps
All 720 permutations0, 2558, 263271Exact for these six orders

Example explanation

FIFO and earliest-deadline ordering both have zero lateness here. That is a tie on the first component, so compare final return next. The swap result must be compared with all 720 permutations before calling it globally optimal for this six-order model. The symbolic A–F example in Week 6 has different data and cannot establish the optimum of this canonical case.

Attach the search counterexample separately: the discovery rule returns cost 10 on S→G, while S→A→G costs 2. Include the failing test and the corrected goal-on-pop condition; the timetable table alone says nothing about search correctness.

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 a1

After completing your own functions, run node run.mjs a1. 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 actual paths, the recurrence, the six-order flight plan, its independent check and the exact comparison.

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
Search implementation, correctness conditions, counterexample35%
Full task and resource handling20%
Timetable, ordering and local improvement25%
Fair experiments, tests, personal explanation20%