Practice suggestions
Write the objective at the top of the page before choosing a rule. Every theorem on this course names one objective and is silent about the other five, and the rules disagree: shortest-first is optimal for total completion time and costs 114 on the weighted version where 108 is available from a rule that is no harder to run.
Prove a rule by swapping two neighbours and writing one subtraction. Give the pair a symbolic start time, write both schedules' completion times, subtract, and check that the start time cancelled. If the difference still mentions another job or the clock, the objective has no exchange rule and the right move is to say so.
Whenever a rule wins, measure what it cost elsewhere. Earliest-due-date attains the best maximum lateness on the lab's five jobs and leaves four jobs late where two is possible. Both sentences are true, both are about due dates, and a report that states only the first is misleading without containing a falsehood.
On more than one machine, compute a lower bound before building a schedule. Total work over the machine count and the longest single job are both free, and a schedule that attains the larger of them is proved optimal with no search at all — while a schedule that does not tells you how much of the remaining gap you have actually bounded.
What it does not cover
Release dates and preemption. Every job here is available at time zero and runs to completion, and that is not a simplification of the proofs — it is a condition on them. Release dates change which exchanges are legal and interrupts change what a schedule is, and nothing proved on this course survives either.
An algorithm for total tardiness. 1 || sum T has no adjacent-exchange rule, the labs exhibit its optimum by enumeration on small instances, and the course names it as the boundary of the technique. Offering a plausible heuristic here would teach the opposite of everything before it.
Anything random, and anything arriving over time. Durations are known numbers, the work is all present at the start, and no machine breaks down. Queues with arrivals and service times as distributions are “Markov Chains, Decisions and Queues”, and a schedule evaluated under uncertainty is “Simulation and Variance Reduction”.
Resource-constrained project scheduling. The crashing programme assumes the activities are independent, so two of them can be shortened at once without competing for the same people. Adding a resource pool turns the timing rows into disjunctions and makes the project network an integer programme, which is a real subject and not a variant of this one.
The job shop at any interesting scale. Enumerating 2^k orientations is exact and is a teaching device; what survives is branch and bound on the same binary choices, which is “Integer Programming”, plus the shifting-bottleneck and local-search methods built on top of it, which are named here and nowhere developed.
The results this course cites and does not prove. The 4/3 − 1/(3m) guarantee for longest-first on identical machines is stated and measured against, never derived; the NP-hardness of 1 || sum T, of makespan on identical machines and of the three-machine flow shop and the job shop are taken from “Algorithms and Complexity”; and the special case in which a three-machine flow shop reduces to two is named without its condition being worked. Each is stated where it is needed, with its owner named.