Identical-machine scheduling #
Machine loads and makespans, list schedules with arbitrary tie breaking, LPT schedules, and the two families attaining Graham's bounds. Processing times are real numbers; nonnegativity and positivity are imposed by the individual results that require them.
The makespan of an assignment: its largest machine load.
Equations
- GrahamLPT.makespan p σ = Finset.univ.sup' ⋯ (GrahamLPT.load p σ)
Instances For
The optimal makespan: the least makespan over all assignments of the n jobs to the m
machines.
Equations
- GrahamLPT.optMakespan m p = Finset.univ.inf' ⋯ fun (σ : Fin n → Fin m) => GrahamLPT.makespan p σ
Instances For
A list schedule in the index order: each job k goes to a machine whose load from the jobs
before k is least,
under any tie-breaking.
Equations
- GrahamLPT.IsListSchedule p σ = ∀ (k : Fin n) (i : Fin m), GrahamLPT.loadBefore p σ (↑k) (σ k) ≤ GrahamLPT.loadBefore p σ (↑k) i
Instances For
An LPT schedule: a list schedule of the jobs taken in some nonincreasing order of length.
Equations
- GrahamLPT.IsLPTSchedule p σ = ∃ (π : Equiv.Perm (Fin n)), Antitone (p ∘ ⇑π) ∧ GrahamLPT.IsListSchedule (p ∘ ⇑π) (σ ∘ ⇑π)
Instances For
The order 2m − 1, …, m + 1, m, m, 2m − 1, …, m + 1, m of Graham's instance, as the job at
each position:
position i < m − 1 holds job 2i (length 2m − 1 − i), positions m − 1 and m hold jobs 2m − 2 and 2m − 1
(length m), position m + 1 + a with a < m − 1 holds job 2a + 1 (length 2m − 1 − a), and
position 2m holds
job 2m (length m).
Equations
- One or more equations did not get rendered due to their size.