Explicit Prefix Load Bound for Unrelated-Machine Scheduling
ProvedPrimalDual.buchbinder_naor_machine_load_boundRun the normalized Buchbinder–Naor load-balancing algorithm on the first jobs of an instance with machines and nonnegative normalized loads . For every machine , the normalized load it has received satisfies
The bound is unconditional: it holds at every prefix , and in particular for the assignments retained by a phase that has already failed. This is the explicit form of the machine-load guarantee of Theorem 8.1, Claim (1), of the source, and it supplies the load half of the mission's final theorem.
Formalization Note The assigned load is read off the algorithm's state after processing the first arrivals, so the statement quantifies over all prefixes rather than only the complete run; no success or dual-feasibility hypothesis is assumed.
import Definitions.Def_pd_unrelated_machines
namespace PrimalDual
/--
The multiplicative-weight argument for the load-balancing guarantee. Every reachable prefix,
including the prefix retained by a failed phase, puts normalized load at most
`ln(3m) / ln(3/2)` on each machine.
-/
theorem buchbinder_naor_machine_load_bound
{jobs machines : ℕ} (I : UnrelatedMachines.Instance jobs machines)
(k : ℕ) (hk : k ≤ jobs) :
∀ j, I.assignedLoadThrough k j ≤ I.logarithmicLoadBound := by
sorry
end PrimalDualRead-back
What the Lean code literally says, in plain math · gpt-5
For every pair of natural numbers and , every instance consisting of a load function together with hypotheses and for every job and machine , and every satisfying , the declaration asserts that every satisfies , where is the real natural logarithm and the prefix run is the following deterministic state evolution on the first entries of the list : initially every machine has weight , every job has assignment and slack , every job–machine dual coordinate is , and the failure marker is ; at an arriving job , if a prior failure marker is already present, the entire state is left unchanged, while otherwise the algorithm first declares failure at —changing only the failure marker—if either the eligible set is empty or some current machine weight is strictly greater than ; if neither condition holds, it selects from the eligible machines a minimizer of times the current weight of , with the eligible machines sorted in their natural finite order before the deterministic argmin, and, for a selected machine , writes assignment , writes slack using the old weight , writes dual coordinate , replaces by , leaves all other coordinates unchanged, and keeps the failure marker empty; the transition definition also contains a fallback that marks failure at if the machine-selection operation returns no machine, although after the empty-eligible-set test has failed the eligible set is nonempty. The overweight test occurs before the current update, so an update may first raise a weight above and this triggers failure only at a later arrival, if there is one. On any failure, all assignments already made remain in the retained state, the failing job receives no new assignment, and every later arrival in the requested prefix sees the absorbing failed state, so the displayed sum is still over all job indices but only assignments present in that retained state contribute. No success, all-jobs-assigned, primal-feasibility, or dual-feasibility hypothesis is imposed. The case is included and uses the initial state, giving an empty set of contributing assignments; is included and, because , forces and makes the sum over jobs empty; values are excluded by the stated hypothesis, so the taken list prefix has exactly arrivals; and although is among the outer natural-number values, no such instance can satisfy , making that case vacuous (and leaving no machine index ), while every actual instance has at least one machine but may still have an arriving job with no eligible machine.
Confirmed by the mission captain (proposal self-audit).